Commit def0023f14351f98a7f23a3e01f7315d3d70fa47

Authored by 王通
2 parents 8f5d694c cb8fc807

Merge remote-tracking branch 'origin/pudong_test' into pudong_test

Showing 34 changed files with 2883 additions and 936 deletions
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 - <dependency>  
364 - <groupId>org.slf4j</groupId>  
365 - <artifactId>slf4j-api</artifactId>  
366 - <version>1.7.7</version>  
367 - </dependency>  
368 - <dependency>  
369 - <groupId>ch.qos.logback</groupId>  
370 - <artifactId>logback-classic</artifactId>  
371 - <version>1.1.3</version>  
372 - </dependency>  
373 - <dependency>  
374 - <groupId>org.slf4j</groupId>  
375 - <artifactId>log4j-over-slf4j</artifactId>  
376 - <version>1.7.7</version>  
377 - </dependency>  
378 -  
379 - <!-- web服务依赖 -->  
380 - <dependency>  
381 - <groupId>org.springframework.boot</groupId>  
382 - <artifactId>spring-boot-starter-ws</artifactId>  
383 - </dependency>  
384 - <dependency>  
385 - <groupId>wsdl4j</groupId>  
386 - <artifactId>wsdl4j</artifactId>  
387 - </dependency>  
388 -  
389 - </dependencies>  
390 -  
391 - <dependencyManagement>  
392 - <dependencies>  
393 - <!-- drools 6依赖 -->  
394 - <dependency>  
395 - <groupId>org.drools</groupId>  
396 - <artifactId>drools-bom</artifactId>  
397 - <type>pom</type>  
398 - <version>6.3.0.Final</version>  
399 - <scope>import</scope>  
400 - </dependency>  
401 - </dependencies>  
402 - </dependencyManagement>  
403 -  
404 - <build>  
405 - <plugins>  
406 - <plugin>  
407 - <artifactId>maven-compiler-plugin</artifactId>  
408 - <version>2.3.2</version><!--$NO-MVN-MAN-VER$ -->  
409 - <configuration>  
410 - <source>1.7</source>  
411 - <target>1.7</target>  
412 - </configuration>  
413 - </plugin>  
414 - <plugin>  
415 - <artifactId>maven-war-plugin</artifactId>  
416 - <version>2.2</version><!--$NO-MVN-MAN-VER$ -->  
417 - <configuration>  
418 - <failOnMissingWebXml>false</failOnMissingWebXml>  
419 - </configuration>  
420 - </plugin>  
421 - <plugin>  
422 - <groupId>org.springframework.boot</groupId>  
423 - <artifactId>spring-boot-maven-plugin</artifactId>  
424 - </plugin>  
425 - <plugin>  
426 - <groupId>org.codehaus.mojo</groupId>  
427 - <artifactId>jaxb2-maven-plugin</artifactId>  
428 - <version>1.6</version>  
429 - <executions>  
430 - <execution>  
431 - <id>xjc</id>  
432 - <phase>none</phase>  
433 - <goals>  
434 - <goal>xjc</goal>  
435 - </goals>  
436 - </execution>  
437 - </executions>  
438 - <configuration>  
439 - <schemaDirectory>${project.basedir}/src/main/resources/xsd/</schemaDirectory>  
440 - <outputDirectory>${project.basedir}/src/main/java</outputDirectory>  
441 - <clearOutputDir>false</clearOutputDir>  
442 - <encoding>utf-8</encoding>  
443 - </configuration>  
444 - </plugin>  
445 - </plugins>  
446 - <resources>  
447 - <resource>  
448 - <directory>src/main/resources</directory>  
449 - <filtering>false</filtering>  
450 - </resource>  
451 - </resources>  
452 - </build>  
453 - <repositories>  
454 - <repository>  
455 - <id>spring-snapshots</id>  
456 - <url>http://repo.spring.io/snapshot</url>  
457 - <snapshots>  
458 - <enabled>true</enabled>  
459 - </snapshots>  
460 - </repository>  
461 - <repository>  
462 - <id>spring-milestones</id>  
463 - <url>http://repo.spring.io/milestone</url>  
464 - </repository>  
465 - </repositories>  
466 - <pluginRepositories>  
467 - <pluginRepository>  
468 - <id>spring-snapshots</id>  
469 - <url>http://repo.spring.io/snapshot</url>  
470 - </pluginRepository>  
471 - <pluginRepository>  
472 - <id>spring-milestones</id>  
473 - <url>http://repo.spring.io/milestone</url>  
474 - </pluginRepository>  
475 - </pluginRepositories>  
476 -  
477 - <properties>  
478 - <start-class>com.bsth.Application</start-class>  
479 - </properties>  
480 -</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 + <dependency>
  364 + <groupId>org.slf4j</groupId>
  365 + <artifactId>slf4j-api</artifactId>
  366 + <version>1.7.7</version>
  367 + </dependency>
  368 + <dependency>
  369 + <groupId>ch.qos.logback</groupId>
  370 + <artifactId>logback-classic</artifactId>
  371 + <version>1.1.3</version>
  372 + </dependency>
  373 + <dependency>
  374 + <groupId>org.slf4j</groupId>
  375 + <artifactId>log4j-over-slf4j</artifactId>
  376 + <version>1.7.7</version>
  377 + </dependency>
  378 +
  379 + <!-- web服务依赖 -->
  380 + <dependency>
  381 + <groupId>org.springframework.boot</groupId>
  382 + <artifactId>spring-boot-starter-ws</artifactId>
  383 + </dependency>
  384 + <dependency>
  385 + <groupId>wsdl4j</groupId>
  386 + <artifactId>wsdl4j</artifactId>
  387 + </dependency>
  388 +
  389 + </dependencies>
  390 +
  391 + <dependencyManagement>
  392 + <dependencies>
  393 + <!-- drools 6依赖 -->
  394 + <dependency>
  395 + <groupId>org.drools</groupId>
  396 + <artifactId>drools-bom</artifactId>
  397 + <type>pom</type>
  398 + <version>6.3.0.Final</version>
  399 + <scope>import</scope>
  400 + </dependency>
  401 + </dependencies>
  402 + </dependencyManagement>
  403 +
  404 + <build>
  405 + <plugins>
  406 + <plugin>
  407 + <artifactId>maven-compiler-plugin</artifactId>
  408 + <version>2.3.2</version><!--$NO-MVN-MAN-VER$ -->
  409 + <configuration>
  410 + <source>1.8</source>
  411 + <target>1.8</target>
  412 + </configuration>
  413 + </plugin>
  414 + <plugin>
  415 + <artifactId>maven-war-plugin</artifactId>
  416 + <version>2.2</version><!--$NO-MVN-MAN-VER$ -->
  417 + <configuration>
  418 + <failOnMissingWebXml>false</failOnMissingWebXml>
  419 + </configuration>
  420 + </plugin>
  421 + <plugin>
  422 + <groupId>org.springframework.boot</groupId>
  423 + <artifactId>spring-boot-maven-plugin</artifactId>
  424 + </plugin>
  425 + <plugin>
  426 + <groupId>org.codehaus.mojo</groupId>
  427 + <artifactId>jaxb2-maven-plugin</artifactId>
  428 + <version>1.6</version>
  429 + <executions>
  430 + <execution>
  431 + <id>xjc</id>
  432 + <phase>none</phase>
  433 + <goals>
  434 + <goal>xjc</goal>
  435 + </goals>
  436 + </execution>
  437 + </executions>
  438 + <configuration>
  439 + <schemaDirectory>${project.basedir}/src/main/resources/xsd/</schemaDirectory>
  440 + <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
  441 + <clearOutputDir>false</clearOutputDir>
  442 + <encoding>utf-8</encoding>
  443 + </configuration>
  444 + </plugin>
  445 + </plugins>
  446 + <resources>
  447 + <resource>
  448 + <directory>src/main/resources</directory>
  449 + <filtering>false</filtering>
  450 + </resource>
  451 + </resources>
  452 + </build>
  453 + <repositories>
  454 + <repository>
  455 + <id>spring-snapshots</id>
  456 + <url>http://repo.spring.io/snapshot</url>
  457 + <snapshots>
  458 + <enabled>true</enabled>
  459 + </snapshots>
  460 + </repository>
  461 + <repository>
  462 + <id>spring-milestones</id>
  463 + <url>http://repo.spring.io/milestone</url>
  464 + </repository>
  465 + </repositories>
  466 + <pluginRepositories>
  467 + <pluginRepository>
  468 + <id>spring-snapshots</id>
  469 + <url>http://repo.spring.io/snapshot</url>
  470 + </pluginRepository>
  471 + <pluginRepository>
  472 + <id>spring-milestones</id>
  473 + <url>http://repo.spring.io/milestone</url>
  474 + </pluginRepository>
  475 + </pluginRepositories>
  476 +
  477 + <properties>
  478 + <start-class>com.bsth.Application</start-class>
  479 + </properties>
  480 +</project>
src/main/java/com/bsth/XDApplication.java
@@ -71,7 +71,6 @@ public class XDApplication implements CommandLineRunner { @@ -71,7 +71,6 @@ public class XDApplication implements CommandLineRunner {
71 71
72 @Autowired 72 @Autowired
73 GpsDataLoaderThread gpsDataLoader; 73 GpsDataLoaderThread gpsDataLoader;
74 -  
75 @Autowired 74 @Autowired
76 RfidDataLoaderThread rfidDataLoaderThread; 75 RfidDataLoaderThread rfidDataLoaderThread;
77 76
src/main/java/com/bsth/controller/calc/CalcWaybillController.java
@@ -317,4 +317,8 @@ public class CalcWaybillController extends BaseController&lt;CalcWaybill, Integer&gt; @@ -317,4 +317,8 @@ public class CalcWaybillController extends BaseController&lt;CalcWaybill, Integer&gt;
317 return calcWaybillService.getBusMileage(line, date, date2, xlName, zt, by, type); 317 return calcWaybillService.getBusMileage(line, date, date2, xlName, zt, by, type);
318 } 318 }
319 319
  320 + @RequestMapping(value="/calcDetailMonthly")
  321 + public List<List<String>> calcDetailMonthly(@RequestParam Map<String, Object> map){
  322 + return calcWaybillService.calcDetailMonthly(map);
  323 + }
320 } 324 }
src/main/java/com/bsth/controller/realcontrol/ReportRegisterController.java
@@ -36,7 +36,8 @@ public class ReportRegisterController extends BaseController&lt;ReportRegister, Lon @@ -36,7 +36,8 @@ public class ReportRegisterController extends BaseController&lt;ReportRegister, Lon
36 36
37 Logger log = LoggerFactory.getLogger(this.getClass()); 37 Logger log = LoggerFactory.getLogger(this.getClass());
38 38
39 - final static String url = "http://114.80.178.13/complaint/TsReport/input.do"; 39 + final static String url = "http://61.171.28.220:8018/complaint/TsReport/input.do";
  40 +// final static String url = "http://114.80.178.13/complaint/TsReport/input.do";
40 // final static String url = "http://192.168.168.228:8080/complaint/TsReport/input.do"; 41 // final static String url = "http://192.168.168.228:8080/complaint/TsReport/input.do";
41 42
42 @Autowired 43 @Autowired
src/main/java/com/bsth/controller/report/ReportController.java
@@ -377,4 +377,16 @@ public class ReportController { @@ -377,4 +377,16 @@ public class ReportController {
377 377
378 return service.singleEnergy(map); 378 return service.singleEnergy(map);
379 } 379 }
  380 +
  381 + /**
  382 + * @Description :TODO(路单线路明细月报表导出数据)
  383 + *
  384 + * @param map <tables>
  385 + *
  386 + * @return Map<String, Object>
  387 + */
  388 + @RequestMapping(value = "/calcDetailMonthlyE" , method = RequestMethod.POST)
  389 + public Map<String, Object> calcDetailMonthlyE(@RequestParam Map<String,Object> map) {
  390 + return service.calcDetailMonthlyE(map);
  391 + }
380 } 392 }
src/main/java/com/bsth/data/report_register/ReportRegisterServiceImpl.java
@@ -83,13 +83,15 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L @@ -83,13 +83,15 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L
83 List<Iterator<?>> list4 = new ArrayList<>(); 83 List<Iterator<?>> list4 = new ArrayList<>();
84 List<Iterator<?>> list5 = new ArrayList<>(); 84 List<Iterator<?>> list5 = new ArrayList<>();
85 List<Iterator<?>> list6 = new ArrayList<>(); 85 List<Iterator<?>> list6 = new ArrayList<>();
  86 + List<Iterator<?>> list7 = new ArrayList<>();
86 List<Map<String, Object>> resList1 = new ArrayList<Map<String, Object>>(); 87 List<Map<String, Object>> resList1 = new ArrayList<Map<String, Object>>();
87 List<Map<String, Object>> resList2 = new ArrayList<Map<String, Object>>(); 88 List<Map<String, Object>> resList2 = new ArrayList<Map<String, Object>>();
88 List<Map<String, Object>> resList3 = new ArrayList<Map<String, Object>>(); 89 List<Map<String, Object>> resList3 = new ArrayList<Map<String, Object>>();
89 List<Map<String, Object>> resList4 = new ArrayList<Map<String, Object>>(); 90 List<Map<String, Object>> resList4 = new ArrayList<Map<String, Object>>();
90 List<Map<String, Object>> resList5 = new ArrayList<Map<String, Object>>(); 91 List<Map<String, Object>> resList5 = new ArrayList<Map<String, Object>>();
91 List<Map<String, Object>> resList6 = new ArrayList<Map<String, Object>>(); 92 List<Map<String, Object>> resList6 = new ArrayList<Map<String, Object>>();
92 - int i1 =0,i2 =0,i3 =0,i4 =0,i5 =0,i6 =0; 93 + List<Map<String, Object>> resList7 = new ArrayList<Map<String, Object>>();
  94 + int i1 =0,i2 =0,i3 =0,i4 =0,i5 =0,i6 =0,i7 =0;
93 ReportUtils ee = new ReportUtils(); 95 ReportUtils ee = new ReportUtils();
94 for (ReportRegister l : list) { 96 for (ReportRegister l : list) {
95 Map<String, Object> m = new HashMap<String, Object>(); 97 Map<String, Object> m = new HashMap<String, Object>();
@@ -152,6 +154,10 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L @@ -152,6 +154,10 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L
152 i6++; 154 i6++;
153 m.put("i", i6); 155 m.put("i", i6);
154 resList6.add(m); 156 resList6.add(m);
  157 + }else if(report_type.equals("7")){
  158 + i7++;
  159 + m.put("i", i7);
  160 + resList7.add(m);
155 } 161 }
156 } 162 }
157 try { 163 try {
@@ -163,6 +169,8 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L @@ -163,6 +169,8 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L
163 lists.add(list3); 169 lists.add(list3);
164 list4.add(resList4.iterator()); 170 list4.add(resList4.iterator());
165 lists.add(list4); 171 lists.add(list4);
  172 + list7.add(resList7.iterator());
  173 + lists.add(list7);
166 list5.add(resList5.iterator()); 174 list5.add(resList5.iterator());
167 lists.add(list5); 175 lists.add(list5);
168 list6.add(resList6.iterator()); 176 list6.add(resList6.iterator());
src/main/java/com/bsth/entity/calc/CalcWaybillDetail.java 0 → 100644
  1 +package com.bsth.entity.calc;
  2 +
  3 +import java.util.Date;
  4 +// calcDetailMonthly.html 返回类
  5 +public class CalcWaybillDetail {
  6 + private Long id;
  7 + /* 公司代码*/
  8 + private String gsdm;
  9 + /* 公司名称*/
  10 + private String gsname;
  11 + /* 分公司代码*/
  12 + private String fgsdm;
  13 + /* 分公司名称*/
  14 + private String fgsname;
  15 + /* 日期*/
  16 + private Date rq;
  17 + /* 日期字符串*/
  18 + private String rqStr;
  19 + /* 线路编码*/
  20 + private String xl;
  21 + /* 线路名称*/
  22 + private String xlName;
  23 + /* 车辆自编号*/
  24 + private String cl;
  25 + /* 路牌名字*/
  26 + private String lp;
  27 + /* 驾驶员工号*/
  28 + private String jGh;
  29 + /* 驾驶员名字*/
  30 + private String jName;
  31 + /* 售票员工号*/
  32 + private String sGh;
  33 + /* 售票员名字*/
  34 + private String sName;
  35 + /* 计划营运班次*/
  36 + private int jhyybc=0;
  37 + /* 计划早高峰营运班次*/
  38 + private int jhyybczgf=0;
  39 + /* 计划晚高峰营运班次*/
  40 + private int jhyybcwgf=0;
  41 + /* 计划非营运班次*/
  42 + private int jhfyybc=0;
  43 + /* 计划营运里程*/
  44 + private Double jhyylc=0.0;
  45 + /* 计划非营运里程*/
  46 + private Double jhfyylc=0.0;
  47 + /* 实际营运班次*/
  48 + private int sjyybc=0;
  49 + /* 实际早高峰营运班次*/
  50 + private int sjyybczgf=0;
  51 + /* 实际晚高峰营运班次*/
  52 + private int sjyybcwgf=0;
  53 + /* 实际非营运班次*/
  54 + private int sjfyybc=0;
  55 + /* 实际营运里程*/
  56 + private Double sjyylc=0.0;
  57 + /* 实际非营运里程*/
  58 + private Double sjfyylc=0.0;
  59 + /* 临加班次*/
  60 + private int ljbc=0;
  61 + /* 临加早高峰班次*/
  62 + private int ljbczgf=0;
  63 + /* 临加晚高峰班次*/
  64 + private int ljbcwgf=0;
  65 + /* 临加营运里程*/
  66 + private Double ljyylc=0.0;
  67 + /* 临加非营运里程*/
  68 + private Double ljfyylc=0.0;
  69 + /* 烂班班次*/
  70 + private int lbbc=0;
  71 + /* 烂班里程*/
  72 + private Double lblc=0.0;
  73 +
  74 +
  75 + // 总里程
  76 + private Double zlc=0.0;
  77 + private Double czlc=0.0;
  78 + private Double jzlc=0.0;
  79 + // 出场油量
  80 + private Double czyl=0.0;
  81 + // 进场油量
  82 + private Double jzyl=0.0;
  83 + // 加注量
  84 + private Double jzl=0.0;
  85 + // 加注量 0号柴油
  86 + private Double jzl0=0.0;
  87 + // 加注量 -10#号柴油
  88 + private Double jzl10=0.0;
  89 + // 油耗
  90 + private Double yh=0.0;
  91 + // 百公里油耗
  92 + private Double bglyh=0.0;
  93 + // 损耗
  94 + private Double sh=0.0;
  95 + // 燃油类型
  96 + private String rylx;
  97 +
  98 + //出站存电
  99 + private Double czcd=0.0;
  100 + //进站存电
  101 + private Double jzcd=0.0;
  102 + //充电量
  103 + private Double cdl=0.0;
  104 + //耗电
  105 + private Double hd=0.0;
  106 + //百公里耗电
  107 + private Double bglhd=0.0;
  108 +
  109 + // 天数记录
  110 + private int ts;
  111 +
  112 + /* 创建时间*/
  113 + private Date createTime;
  114 + /* 修改时间*/
  115 + private Date updateTime;
  116 + public Long getId() {
  117 + return id;
  118 + }
  119 + public void setId(Long id) {
  120 + this.id = id;
  121 + }
  122 + public String getGsdm() {
  123 + return gsdm;
  124 + }
  125 + public void setGsdm(String gsdm) {
  126 + this.gsdm = gsdm;
  127 + }
  128 + public String getGsname() {
  129 + return gsname;
  130 + }
  131 + public void setGsname(String gsname) {
  132 + this.gsname = gsname;
  133 + }
  134 + public String getFgsdm() {
  135 + return fgsdm;
  136 + }
  137 + public void setFgsdm(String fgsdm) {
  138 + this.fgsdm = fgsdm;
  139 + }
  140 + public String getFgsname() {
  141 + return fgsname;
  142 + }
  143 + public void setFgsname(String fgsname) {
  144 + this.fgsname = fgsname;
  145 + }
  146 + public Date getRq() {
  147 + return rq;
  148 + }
  149 + public void setRq(Date rq) {
  150 + this.rq = rq;
  151 + }
  152 + public String getRqStr() {
  153 + return rqStr;
  154 + }
  155 + public void setRqStr(String rqStr) {
  156 + this.rqStr = rqStr;
  157 + }
  158 + public String getXl() {
  159 + return xl;
  160 + }
  161 + public void setXl(String xl) {
  162 + this.xl = xl;
  163 + }
  164 + public String getXlName() {
  165 + return xlName;
  166 + }
  167 + public void setXlName(String xlName) {
  168 + this.xlName = xlName;
  169 + }
  170 + public String getCl() {
  171 + return cl;
  172 + }
  173 + public void setCl(String cl) {
  174 + this.cl = cl;
  175 + }
  176 + public String getLp() {
  177 + return lp;
  178 + }
  179 + public void setLp(String lp) {
  180 + this.lp = lp;
  181 + }
  182 + public String getjGh() {
  183 + return jGh;
  184 + }
  185 + public void setjGh(String jGh) {
  186 + this.jGh = jGh;
  187 + }
  188 + public String getjName() {
  189 + return jName;
  190 + }
  191 + public void setjName(String jName) {
  192 + this.jName = jName;
  193 + }
  194 + public String getsGh() {
  195 + return sGh;
  196 + }
  197 + public void setsGh(String sGh) {
  198 + this.sGh = sGh;
  199 + }
  200 + public String getsName() {
  201 + return sName;
  202 + }
  203 + public void setsName(String sName) {
  204 + this.sName = sName;
  205 + }
  206 + public int getJhyybc() {
  207 + return jhyybc;
  208 + }
  209 + public void setJhyybc(int jhyybc) {
  210 + this.jhyybc = jhyybc;
  211 + }
  212 + public int getJhyybczgf() {
  213 + return jhyybczgf;
  214 + }
  215 + public void setJhyybczgf(int jhyybczgf) {
  216 + this.jhyybczgf = jhyybczgf;
  217 + }
  218 + public int getJhyybcwgf() {
  219 + return jhyybcwgf;
  220 + }
  221 + public void setJhyybcwgf(int jhyybcwgf) {
  222 + this.jhyybcwgf = jhyybcwgf;
  223 + }
  224 + public int getJhfyybc() {
  225 + return jhfyybc;
  226 + }
  227 + public void setJhfyybc(int jhfyybc) {
  228 + this.jhfyybc = jhfyybc;
  229 + }
  230 + public Double getJhyylc() {
  231 + return jhyylc;
  232 + }
  233 + public void setJhyylc(Double jhyylc) {
  234 + this.jhyylc = jhyylc;
  235 + }
  236 + public Double getJhfyylc() {
  237 + return jhfyylc;
  238 + }
  239 + public void setJhfyylc(Double jhfyylc) {
  240 + this.jhfyylc = jhfyylc;
  241 + }
  242 + public int getSjyybc() {
  243 + return sjyybc;
  244 + }
  245 + public void setSjyybc(int sjyybc) {
  246 + this.sjyybc = sjyybc;
  247 + }
  248 + public int getSjyybczgf() {
  249 + return sjyybczgf;
  250 + }
  251 + public void setSjyybczgf(int sjyybczgf) {
  252 + this.sjyybczgf = sjyybczgf;
  253 + }
  254 + public int getSjyybcwgf() {
  255 + return sjyybcwgf;
  256 + }
  257 + public void setSjyybcwgf(int sjyybcwgf) {
  258 + this.sjyybcwgf = sjyybcwgf;
  259 + }
  260 + public int getSjfyybc() {
  261 + return sjfyybc;
  262 + }
  263 + public void setSjfyybc(int sjfyybc) {
  264 + this.sjfyybc = sjfyybc;
  265 + }
  266 + public Double getSjyylc() {
  267 + return sjyylc;
  268 + }
  269 + public void setSjyylc(Double sjyylc) {
  270 + this.sjyylc = sjyylc;
  271 + }
  272 + public Double getSjfyylc() {
  273 + return sjfyylc;
  274 + }
  275 + public void setSjfyylc(Double sjfyylc) {
  276 + this.sjfyylc = sjfyylc;
  277 + }
  278 + public int getLjbc() {
  279 + return ljbc;
  280 + }
  281 + public void setLjbc(int ljbc) {
  282 + this.ljbc = ljbc;
  283 + }
  284 + public int getLjbczgf() {
  285 + return ljbczgf;
  286 + }
  287 + public void setLjbczgf(int ljbczgf) {
  288 + this.ljbczgf = ljbczgf;
  289 + }
  290 + public int getLjbcwgf() {
  291 + return ljbcwgf;
  292 + }
  293 + public void setLjbcwgf(int ljbcwgf) {
  294 + this.ljbcwgf = ljbcwgf;
  295 + }
  296 + public Double getLjyylc() {
  297 + return ljyylc;
  298 + }
  299 + public void setLjyylc(Double ljyylc) {
  300 + this.ljyylc = ljyylc;
  301 + }
  302 + public Double getLjfyylc() {
  303 + return ljfyylc;
  304 + }
  305 + public void setLjfyylc(Double ljfyylc) {
  306 + this.ljfyylc = ljfyylc;
  307 + }
  308 + public int getLbbc() {
  309 + return lbbc;
  310 + }
  311 + public void setLbbc(int lbbc) {
  312 + this.lbbc = lbbc;
  313 + }
  314 + public Double getLblc() {
  315 + return lblc;
  316 + }
  317 + public void setLblc(Double lblc) {
  318 + this.lblc = lblc;
  319 + }
  320 +
  321 + public Double getZlc() {
  322 + return zlc;
  323 + }
  324 +
  325 + public void setZlc(Double zlc) {
  326 + this.zlc = zlc;
  327 + }
  328 +
  329 + public Double getCzlc() {
  330 + return czlc;
  331 + }
  332 +
  333 + public void setCzlc(Double czlc) {
  334 + this.czlc = czlc;
  335 + }
  336 +
  337 + public Double getJzlc() {
  338 + return jzlc;
  339 + }
  340 +
  341 + public void setJzlc(Double jzlc) {
  342 + this.jzlc = jzlc;
  343 + }
  344 +
  345 + public Double getCzyl() {
  346 + return czyl;
  347 + }
  348 +
  349 + public void setCzyl(Double czyl) {
  350 + this.czyl = czyl;
  351 + }
  352 +
  353 + public Double getJzyl() {
  354 + return jzyl;
  355 + }
  356 +
  357 + public void setJzyl(Double jzyl) {
  358 + this.jzyl = jzyl;
  359 + }
  360 +
  361 + public Double getJzl() {
  362 + return jzl;
  363 + }
  364 +
  365 + public Double getJzl0() {
  366 + return jzl0;
  367 + }
  368 +
  369 + public void setJzl0(Double jzl0) {
  370 + this.jzl0 = jzl0;
  371 + }
  372 +
  373 + public Double getJzl10() {
  374 + return jzl10;
  375 + }
  376 +
  377 + public void setJzl10(Double jzl10) {
  378 + this.jzl10 = jzl10;
  379 + }
  380 +
  381 + public void setJzl(Double jzl) {
  382 + this.jzl = jzl;
  383 + }
  384 +
  385 + public Double getYh() {
  386 + return yh;
  387 + }
  388 +
  389 + public void setYh(Double yh) {
  390 + this.yh = yh;
  391 + }
  392 +
  393 + public Double getBglyh() {
  394 + return bglyh;
  395 + }
  396 +
  397 + public void setBglyh(Double bglyh) {
  398 + this.bglyh = bglyh;
  399 + }
  400 +
  401 + public Double getSh() {
  402 + return sh;
  403 + }
  404 +
  405 + public void setSh(Double sh) {
  406 + this.sh = sh;
  407 + }
  408 +
  409 + public String getRylx() {
  410 + return rylx;
  411 + }
  412 +
  413 + public void setRylx(String rylx) {
  414 + this.rylx = rylx;
  415 + }
  416 +
  417 + public Double getCzcd() {
  418 + return czcd;
  419 + }
  420 +
  421 + public void setCzcd(Double czcd) {
  422 + this.czcd = czcd;
  423 + }
  424 +
  425 + public Double getJzcd() {
  426 + return jzcd;
  427 + }
  428 +
  429 + public void setJzcd(Double jzcd) {
  430 + this.jzcd = jzcd;
  431 + }
  432 +
  433 + public Double getCdl() {
  434 + return cdl;
  435 + }
  436 +
  437 + public void setCdl(Double cdl) {
  438 + this.cdl = cdl;
  439 + }
  440 +
  441 + public Double getHd() {
  442 + return hd;
  443 + }
  444 +
  445 + public void setHd(Double hd) {
  446 + this.hd = hd;
  447 + }
  448 +
  449 + public Double getBglhd() {
  450 + return bglhd;
  451 + }
  452 +
  453 + public void setBglhd(Double bglhd) {
  454 + this.bglhd = bglhd;
  455 + }
  456 +
  457 + public int getTs() {
  458 + return ts;
  459 + }
  460 +
  461 + public void setTs(int ts) {
  462 + this.ts = ts;
  463 + }
  464 +
  465 + public Date getCreateTime() {
  466 + return createTime;
  467 + }
  468 + public void setCreateTime(Date createTime) {
  469 + this.createTime = createTime;
  470 + }
  471 + public Date getUpdateTime() {
  472 + return updateTime;
  473 + }
  474 + public void setUpdateTime(Date updateTime) {
  475 + this.updateTime = updateTime;
  476 + }
  477 +
  478 +
  479 +
  480 +}
src/main/java/com/bsth/repository/LineVersionsRepository.java
@@ -36,9 +36,9 @@ public interface LineVersionsRepository extends BaseRepository&lt;LineVersions, Int @@ -36,9 +36,9 @@ public interface LineVersionsRepository extends BaseRepository&lt;LineVersions, Int
36 @Transactional 36 @Transactional
37 @Modifying 37 @Modifying
38 @Query(value = "UPDATE LineVersions lv set lv.line=?2, lv.lineCode=?3, lv.startDate=?4, lv.endDate=?5, " 38 @Query(value = "UPDATE LineVersions lv set lv.line=?2, lv.lineCode=?3, lv.startDate=?4, lv.endDate=?5, "
39 - + "lv.versions=?6, lv.status=?7, lv.remark=?8 where lv.id=?1") 39 + + "lv.versions=?6, lv.status=?7, lv.remark=?8, lv.name=?9 where lv.id=?1")
40 public int update(Integer id, Line line, String lineCode, Date startDate, Date endDate, Integer versions, Integer status, 40 public int update(Integer id, Line line, String lineCode, Date startDate, Date endDate, Integer versions, Integer status,
41 - String remark); 41 + String remark,String name);
42 42
43 /** 43 /**
44 * 查询待更新线路的线路版本 44 * 查询待更新线路的线路版本
src/main/java/com/bsth/repository/calc/CalcWaybillRepository.java
@@ -72,4 +72,21 @@ public interface CalcWaybillRepository extends BaseRepository&lt;CalcWaybill, Integ @@ -72,4 +72,21 @@ public interface CalcWaybillRepository extends BaseRepository&lt;CalcWaybill, Integ
72 + " and c.cl in (select s.carCode from Cars s where s.sfdc = ?7) order by c.xl") 72 + " and c.cl in (select s.carCode from Cars s where s.sfdc = ?7) order by c.xl")
73 List<CalcWaybill> scheduleByZbh(String line,String date,String date2,String gsdm,String fgsdm,String zbh,Boolean sfdc); 73 List<CalcWaybill> scheduleByZbh(String line,String date,String date2,String gsdm,String fgsdm,String zbh,Boolean sfdc);
74 74
  75 +
  76 + //按照时间段统计,公司下线路 (驾驶员)
  77 + @Query(value="select DISTINCT c from CalcWaybill c where c.xl in(?1) and c.rqStr between ?2 and ?3 and c.gsdm in(?4) and c.fgsdm in(?5) order by c.jGh,c.fgsdm,c.xl,c.rq")
  78 + List<CalcWaybill> scheduleByJsy2(List<String> line,String date,String date2,List<String> gsdm,List<String> fgsdm);
  79 + //按照时间段统计,公司下线路 (售票员) coalesce(c.sGh,'')
  80 + @Query(value="select DISTINCT c from CalcWaybill c where c.xl in(?1) and c.rqStr between ?2 and ?3 and c.gsdm in(?4) and c.fgsdm in(?5) and c.sGh <> null and c.sGh <> '' order by c.sGh,c.fgsdm,c.xl,c.rq")
  81 + List<CalcWaybill> scheduleBySpy2(List<String> line,String date,String date2,List<String> gsdm,List<String> fgsdm);
  82 + //按照时间段统计,公司下线路 (车辆自编号)
  83 + @Query(value="select DISTINCT c from CalcWaybill c where c.xl in(?1) and c.rqStr between ?2 and ?3 and c.gsdm in(?4) and c.fgsdm in(?5) order by c.cl,c.fgsdm,c.xl,c.rq")
  84 + List<CalcWaybill> scheduleByZbh2(List<String> line,String date,String date2,List<String> gsdm,List<String> fgsdm);
  85 + //按照时间段统计,公司下线路 排序不同
  86 + @Query(value="select DISTINCT c from CalcWaybill c where c.xl in(?1) and c.rqStr between ?2 and ?3 and c.gsdm in(?4) and c.fgsdm in(?5) order by c.fgsdm,c.xl,c.rq")
  87 + List<CalcWaybill> scheduleByDateAndLineTjPx(List<String> line,String date,String date2,List<String> gsdm,List<String> fgsdm);
  88 + //按照时间段统计,单条线路 排序不同
  89 + @Query(value="select DISTINCT c from CalcWaybill c where c.xl = ?1 and c.rqStr between ?2 and ?3 order by c.xl,c.rq")
  90 + List<CalcWaybill> scheduleByDateAndLineTjPx2(String line,String date,String date2);
  91 +
75 } 92 }
src/main/java/com/bsth/service/calc/CalcWaybillService.java
@@ -41,5 +41,6 @@ public interface CalcWaybillService extends BaseService&lt;CalcWaybill, Integer&gt; { @@ -41,5 +41,6 @@ public interface CalcWaybillService extends BaseService&lt;CalcWaybill, Integer&gt; {
41 List<Map<String, Object>> getLineMileage(String gsdm, String fgsdm, String line, String date, String date2, String xlName, String zt, String by, String type); 41 List<Map<String, Object>> getLineMileage(String gsdm, String fgsdm, String line, String date, String date2, String xlName, String zt, String by, String type);
42 42
43 List<Map<String, Object>> getBusMileage(String line, String date, String date2, String xlName, String zt, String by, String type); 43 List<Map<String, Object>> getBusMileage(String line, String date, String date2, String xlName, String zt, String by, String type);
44 - 44 +
  45 + List<List<String>> calcDetailMonthly(Map<String, Object> map);
45 } 46 }
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
1 package com.bsth.service.calc.impl; 1 package com.bsth.service.calc.impl;
2 2
3 -import java.sql.ResultSet;  
4 -import java.sql.SQLException;  
5 -import java.text.ParseException;  
6 -import java.text.SimpleDateFormat;  
7 -import java.util.ArrayList;  
8 -import java.util.Calendar;  
9 -import java.util.Collections;  
10 -import java.util.Comparator;  
11 -import java.util.Date;  
12 -import java.util.HashMap;  
13 -import java.util.HashSet;  
14 -import java.util.Iterator;  
15 -import java.util.List;  
16 -import java.util.Map;  
17 -import java.util.Map.Entry;  
18 -import java.util.Set;  
19 -  
20 -import javax.transaction.Transactional;  
21 - 3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONArray;
22 import com.bsth.common.ResponseCode; 5 import com.bsth.common.ResponseCode;
23 import com.bsth.data.BasicData; 6 import com.bsth.data.BasicData;
24 import com.bsth.entity.Line; 7 import com.bsth.entity.Line;
@@ -27,6 +10,9 @@ import com.bsth.entity.calc.CalcInterval; @@ -27,6 +10,9 @@ import com.bsth.entity.calc.CalcInterval;
27 import com.bsth.entity.calc.CalcLineMileage; 10 import com.bsth.entity.calc.CalcLineMileage;
28 import com.bsth.entity.calc.CalcStatistics; 11 import com.bsth.entity.calc.CalcStatistics;
29 import com.bsth.entity.calc.CalcWaybill; 12 import com.bsth.entity.calc.CalcWaybill;
  13 +import com.bsth.entity.calc.CalcWaybillDetail;
  14 +import com.bsth.entity.oil.Dlb;
  15 +import com.bsth.entity.oil.Ylb;
30 import com.bsth.entity.realcontrol.ChildTaskPlan; 16 import com.bsth.entity.realcontrol.ChildTaskPlan;
31 import com.bsth.entity.realcontrol.ScheduleRealInfo; 17 import com.bsth.entity.realcontrol.ScheduleRealInfo;
32 import com.bsth.entity.sys.Interval; 18 import com.bsth.entity.sys.Interval;
@@ -45,19 +31,27 @@ import com.bsth.service.realcontrol.ScheduleRealInfoService; @@ -45,19 +31,27 @@ import com.bsth.service.realcontrol.ScheduleRealInfoService;
45 import com.bsth.service.report.CulateMileageService; 31 import com.bsth.service.report.CulateMileageService;
46 import com.bsth.service.report.ReportService; 32 import com.bsth.service.report.ReportService;
47 import com.bsth.util.Arith; 33 import com.bsth.util.Arith;
48 -import com.bsth.util.BatchSaveUtils;  
49 import com.bsth.util.ReportUtils; 34 import com.bsth.util.ReportUtils;
50 import com.github.stuxuhai.jpinyin.PinyinException; 35 import com.github.stuxuhai.jpinyin.PinyinException;
51 import com.github.stuxuhai.jpinyin.PinyinFormat; 36 import com.github.stuxuhai.jpinyin.PinyinFormat;
52 import com.github.stuxuhai.jpinyin.PinyinHelper; 37 import com.github.stuxuhai.jpinyin.PinyinHelper;
53 - 38 +import org.apache.commons.lang3.StringUtils;
54 import org.slf4j.Logger; 39 import org.slf4j.Logger;
55 import org.slf4j.LoggerFactory; 40 import org.slf4j.LoggerFactory;
  41 +import org.springframework.beans.BeanUtils;
56 import org.springframework.beans.factory.annotation.Autowired; 42 import org.springframework.beans.factory.annotation.Autowired;
57 import org.springframework.jdbc.core.JdbcTemplate; 43 import org.springframework.jdbc.core.JdbcTemplate;
58 import org.springframework.jdbc.core.RowMapper; 44 import org.springframework.jdbc.core.RowMapper;
59 import org.springframework.stereotype.Service; 45 import org.springframework.stereotype.Service;
60 46
  47 +import javax.transaction.Transactional;
  48 +import java.sql.ResultSet;
  49 +import java.sql.SQLException;
  50 +import java.text.DecimalFormat;
  51 +import java.text.ParseException;
  52 +import java.text.SimpleDateFormat;
  53 +import java.util.*;
  54 +
61 /** 55 /**
62 * Created by 17/11/16. 56 * Created by 17/11/16.
63 */ 57 */
@@ -75,7 +69,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -75,7 +69,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
75 69
76 @Autowired 70 @Autowired
77 private CalcBusMileageRepository calcBusMileageRepository; 71 private CalcBusMileageRepository calcBusMileageRepository;
78 - 72 +
79 @Autowired 73 @Autowired
80 private CalcToolService calcToolService; 74 private CalcToolService calcToolService;
81 75
@@ -1809,6 +1803,632 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -1809,6 +1803,632 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
1809 return temp; 1803 return temp;
1810 } 1804 }
1811 1805
  1806 + @Override
  1807 + public List<List<String>> calcDetailMonthly(Map<String, Object> map) {
  1808 +// String gsdm="";
  1809 +// if(map.get("gsdm")!=null){
  1810 +// gsdm=map.get("gsdm").toString().trim();
  1811 +// }
  1812 +// String fgsdm="";
  1813 +// if(map.get("fgsdm")!=null){
  1814 +// fgsdm=map.get("fgsdm").toString().trim();
  1815 +// }
  1816 + List<String> gsdm= new ArrayList<>();
  1817 + String gsdmStr = "";
  1818 + if(map.get("gsdm")!=null){
  1819 + gsdmStr = map.get("gsdm").toString().trim();
  1820 + String[] gsdms = gsdmStr.split(",");
  1821 + for (int i = 0; i < gsdms.length; i++){
  1822 + gsdm.add(gsdms[i]);
  1823 + }
  1824 + }
  1825 + List<String> fgsdm= new ArrayList<>();
  1826 + String fgsdmStr = "";
  1827 + if(map.get("fgsdm")!=null){
  1828 + fgsdmStr = map.get("fgsdm").toString().trim();
  1829 + String[] fgsdms = fgsdmStr.split(",");
  1830 + for (int i = 0; i < fgsdms.length; i++){
  1831 + fgsdm.add(fgsdms[i]);
  1832 + }
  1833 + }
  1834 +// String line= null;
  1835 + List<String> line= new ArrayList<>();
  1836 + String lineStr = "";
  1837 + if(map.get("lineCode")!=null){
  1838 + lineStr = map.get("lineCode").toString().trim();
  1839 + String[] lines = lineStr.split(",");
  1840 + for (int i = 0; i < lines.length; i++){
  1841 + line.add(lines[i]);
  1842 + }
  1843 + }
  1844 + String startDate="";
  1845 + if(map.get("startDate")!=null){
  1846 + startDate=map.get("startDate").toString().trim();
  1847 + }
  1848 + String endDate="";
  1849 + if(map.get("endDate")!=null){
  1850 + endDate=map.get("endDate").toString().trim();
  1851 + }
  1852 + String type="";
  1853 + if(map.get("type")!=null){
  1854 + type=map.get("type").toString().trim();
  1855 + }
  1856 + String statisticalObj="";
  1857 + if(map.get("statisticalObj")!=null){
  1858 + statisticalObj=map.get("statisticalObj").toString().trim();
  1859 + }
  1860 + String itemDetails="";
  1861 + if(map.get("itemDetails")!=null){
  1862 + itemDetails=map.get("itemDetails").toString().trim();
  1863 + }
  1864 +// Boolean item=false;
  1865 + /*String item="";
  1866 + if(map.get("item")!=null){
  1867 + if("dh".equals(map.get("item").toString().trim()))
  1868 + item=" where c.sfdc = 1";
  1869 +// item=false;
  1870 + else if ("dh".equals(map.get("item").toString().trim()))
  1871 + item=" where c.sfdc = 0";
  1872 +// item=true;
  1873 + else
  1874 + item="";
  1875 + }*/
  1876 + String timeType=map.get("timeType").toString().trim();
  1877 +
  1878 + List<List<String>> resList = new ArrayList<>();
  1879 + List<CalcWaybill> list = new ArrayList<CalcWaybill>();
  1880 +// List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  1881 + // 右边可变天数
  1882 + TreeMap<String, List<CalcWaybillDetail>> keyMapList = new TreeMap<String, List<CalcWaybillDetail>>();
  1883 + // 左边固定列
  1884 + TreeMap<String, CalcWaybillDetail> keyMap = new TreeMap<String, CalcWaybillDetail>();
  1885 +
  1886 + List<Map<String, CalcWaybillDetail>> dayList = new ArrayList<>();
  1887 + int day = 0, day2 = 0;
  1888 + if("m".equals(timeType)){
  1889 + day = Integer.parseInt(startDate.substring(8,10));
  1890 + day2 = Integer.parseInt(endDate.substring(8,10));
  1891 + for(int i=day; i<=day2; i++){
  1892 + Map<String, CalcWaybillDetail> daym = new HashMap<>();
  1893 + daym.put(startDate.substring(0,7)+"-"+(i<10?"0"+i:i),this.initCalcWaybillDetail());
  1894 + dayList.add(daym);
  1895 + }
  1896 + } else if("y".equals(timeType)){
  1897 + day = Integer.parseInt(startDate.substring(5,7));
  1898 + day2 = Integer.parseInt(endDate.substring(5,7));
  1899 + for(int i=day; i<=day2; i++){
  1900 + Map<String, CalcWaybillDetail> daym = new HashMap<>();
  1901 + daym.put(startDate.substring(0,5)+(i<10?"0"+i:i),this.initCalcWaybillDetail());
  1902 + dayList.add(daym);
  1903 + }
  1904 + startDate += "-01";
  1905 + endDate += "-31";
  1906 + }
  1907 +
  1908 + int flag = 0;
  1909 + if("jsy".equals(statisticalObj)){
  1910 + flag = 1;
  1911 + list = calcRepository.scheduleByJsy2(line, startDate, endDate, gsdm, fgsdm);
  1912 + } else if("cwy".equals(statisticalObj)){
  1913 + flag = 2;
  1914 + list = calcRepository.scheduleBySpy2(line, startDate, endDate, gsdm, fgsdm);
  1915 + } else if("cl".equals(statisticalObj)){
  1916 + flag = 3;
  1917 + list = calcRepository.scheduleByZbh2(line, startDate, endDate, gsdm, fgsdm);
  1918 + } else if("xl".equals(statisticalObj)){
  1919 + flag = 4;
  1920 + list = calcRepository.scheduleByDateAndLineTjPx(line,startDate,endDate,gsdm,fgsdm);
  1921 + /*if(line.equals("")){
  1922 + //查询所有线路
  1923 + }else{
  1924 + //查询单条线路
  1925 + list = calcRepository.scheduleByDateAndLineTjPx2(line,startDate,endDate);
  1926 + }*/
  1927 + }
  1928 +
  1929 +
  1930 + // List类转换
  1931 + final List<CalcWaybillDetail> listNew = JSONArray.parseArray(JSON.toJSONString(list), CalcWaybillDetail.class);
  1932 +
  1933 + if(listNew.size() <= 0){
  1934 + return resList;
  1935 + }
  1936 + Map<String,Ylb> ylbMap = new HashMap<>();
  1937 + Map<String,Ylb> ylbCLMap = new HashMap<>();
  1938 + Map<String,Dlb> dlbMap = new HashMap<>();
  1939 + Map<String,Dlb> dlbCLMap = new HashMap<>();
  1940 +
  1941 + final SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
  1942 +
  1943 + // 只有在选择 车辆,驾驶员查询时才有
  1944 + // 把油量和电量数据查出来,封装成Map,计算时直接取
  1945 + if(flag != 2 ){
  1946 + String linesql="";
  1947 + if(!lineStr.equals("")){
  1948 + linesql +=" and xlbm in("+lineStr+") ";
  1949 + }
  1950 + if(!gsdmStr.equals("")){
  1951 + linesql +=" and ssgsdm in("+gsdmStr+") ";
  1952 + }
  1953 + if(!fgsdmStr.equals("")){
  1954 + linesql +=" and fgsdm in("+fgsdmStr+") ";
  1955 + }
  1956 + String ylsql="SELECT * FROM bsth_c_ylb"
  1957 +// String ylsql="SELECT id,xlbm,nbbm,jsy,jzl,czyl,jzyl,yh,sh,fgsdm FROM bsth_c_ylb"
  1958 + + " WHERE rq >= '"+startDate+"' and rq <= '"+endDate+"' "
  1959 + + linesql;
  1960 + String dlSal= " SELECT * FROM bsth_c_dlb"
  1961 +// String dlSal= " SELECT id,xlbm,nbbm,jsy,cdl,czcd,jzcd,hd,sh,fgsdm FROM bsth_c_dlb"
  1962 + + " WHERE rq >= '"+startDate+"' and rq <= '"+endDate+"' "
  1963 + + linesql;
  1964 + List<Ylb> ylbList = jdbcTemplate.query(ylsql, new RowMapper<Ylb>() {
  1965 + @Override
  1966 + public Ylb mapRow(ResultSet arg0, int arg1) throws SQLException{
  1967 + Ylb ylb = new Ylb();
  1968 + Date rq = null;
  1969 + try{
  1970 + rq = ft.parse(arg0.getString("rq"));
  1971 + } catch (ParseException e){
  1972 + logger.error(e.toString(),e);
  1973 + }
  1974 +// Date rq = ft.parse(arg0.getString("rq"));
  1975 + ylb.setXlbm(arg0.getString("xlbm"));
  1976 + ylb.setJsy(arg0.getString("jsy"));
  1977 + ylb.setJname(arg0.getString("jname"));
  1978 + ylb.setNbbm(arg0.getString("nbbm"));
  1979 + ylb.setZlc(Double.parseDouble(arg0.getString("zlc")));
  1980 + ylb.setJzl(Double.parseDouble(arg0.getString("jzl")));
  1981 + ylb.setJzyl(Double.parseDouble(arg0.getString("jzyl")));
  1982 + ylb.setCzyl(Double.parseDouble(arg0.getString("czyl")));
  1983 + ylb.setYh(Double.parseDouble(arg0.getString("yh")));
  1984 + ylb.setSh(Double.parseDouble(arg0.getString("sh")));
  1985 + ylb.setRylx(arg0.getString("rylx"));
  1986 + ylb.setFgsdm(arg0.getString("fgsdm"));
  1987 + ylb.setRq(rq);
  1988 + return ylb;
  1989 + }
  1990 + });
  1991 + List<Dlb> dlbList = jdbcTemplate.query(dlSal, new RowMapper<Dlb>() {
  1992 + @Override
  1993 + public Dlb mapRow(ResultSet arg0, int arg1) throws SQLException {
  1994 + Dlb dlb = new Dlb();Date rq = null;
  1995 + try{
  1996 + rq = ft.parse(arg0.getString("rq"));
  1997 + } catch (ParseException e){
  1998 + logger.error(e.toString(),e);
  1999 + }
  2000 + dlb.setXlbm(arg0.getString("xlbm"));
  2001 + dlb.setJsy(arg0.getString("jsy"));
  2002 + dlb.setJname(arg0.getString("jname"));
  2003 + dlb.setNbbm(arg0.getString("nbbm"));
  2004 + dlb.setZlc(Double.parseDouble(arg0.getString("zlc")));
  2005 + dlb.setCdl(Double.parseDouble(arg0.getString("cdl")));
  2006 + dlb.setJzcd(Double.parseDouble(arg0.getString("jzcd")));
  2007 + dlb.setCzcd(Double.parseDouble(arg0.getString("czcd")));
  2008 + dlb.setHd(Double.parseDouble(arg0.getString("hd")));
  2009 + dlb.setSh(Double.parseDouble(arg0.getString("sh")));
  2010 + dlb.setFgsdm(arg0.getString("fgsdm"));
  2011 + dlb.setRq(rq);
  2012 + return dlb;
  2013 + }
  2014 + });
  2015 +
  2016 + for (Ylb y:ylbList) {
  2017 + if(ylbMap.containsKey(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getJsy()+"_"+y.getNbbm())){
  2018 + Ylb yo = ylbMap.get(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getJsy()+"_"+y.getNbbm());
  2019 + yo.setZlc(Arith.add(yo.getZlc(),y.getZlc()));
  2020 + yo.setCzyl(Arith.add(yo.getCzyl(),y.getCzyl()));
  2021 + yo.setJzyl(Arith.add(yo.getJzyl(),y.getJzyl()));
  2022 + yo.setJzl(Arith.add(yo.getJzl(),y.getJzl()));
  2023 + yo.setYh(Arith.add(yo.getYh(),y.getYh()));
  2024 + } else
  2025 + ylbMap.put(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getJsy()+"_"+y.getNbbm(),y);
  2026 +
  2027 +// ylbMap.put(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getJsy()+"_"+y.getJname()+"_"+y.getNbbm(),y);
  2028 +// ylbCLMap.put(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getNbbm(),y);
  2029 + }
  2030 + for (Dlb d:dlbList) {
  2031 + if(dlbMap.containsKey(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getJsy()+"_"+d.getNbbm())){
  2032 + Dlb dold = dlbMap.get(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getJsy()+"_"+d.getNbbm());
  2033 + dold.setZlc(Arith.add(dold.getZlc(),d.getZlc()));
  2034 + dold.setHd(Arith.add(dold.getHd(),d.getHd()));
  2035 + dold.setCzcd(Arith.add(dold.getCzcd(),d.getCzcd()));
  2036 + dold.setJzcd(Arith.add(dold.getJzcd(),d.getJzcd()));
  2037 + dold.setCdl(Arith.add(dold.getCdl(),d.getCdl()));
  2038 + dold.setHd(Arith.add(dold.getHd(),d.getHd()));
  2039 + } else
  2040 + dlbMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getJsy()+"_"+d.getNbbm(),d);
  2041 +// dlbMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getJsy()+"_"+d.getJname()+"_"+d.getNbbm(),d);
  2042 +// dlbCLMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getNbbm(),d);
  2043 + }
  2044 + }
  2045 +
  2046 + CalcWaybillDetail zjCalc = this.initCalcWaybillDetail();
  2047 + zjCalc.setjName("合计");
  2048 + // 横向数据的第几天下标
  2049 + int dayIndex = 0;
  2050 + int dayIndexPrev = -1;
  2051 + // 报表纵向列数据生成
  2052 + for (int i = 0; listNew.size() > i; i++) {
  2053 + CalcWaybillDetail cw = listNew.get(i);
  2054 +
  2055 + CalcWaybillDetail cwNext = new CalcWaybillDetail();
  2056 + if(i<listNew.size()-1){
  2057 + cwNext = listNew.get(i+1);
  2058 + }
  2059 + String xl = cw.getXl();
  2060 + String jsy = cw.getjGh();
  2061 + String cwy = cw.getsGh();
  2062 + String cl = cw.getCl();
  2063 +
  2064 + Ylb y = new Ylb();
  2065 + Dlb d = new Dlb();
  2066 + // 统计类型不同统计的左边列不同
  2067 + // 赋值油、电量
  2068 + if(flag != 2){
  2069 + // 取了之后删除,防止重复取,应为添加的时候已经合并了
  2070 + y = ylbMap.get(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
  2071 + ylbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
  2072 + d = dlbMap.get(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
  2073 + dlbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
  2074 + if(y != null){
  2075 + cw.setZlc(y.getZlc());
  2076 + cw.setYh(y.getYh());
  2077 + cw.setJzl(y.getJzl());
  2078 + if("0".equals(y.getRylx())){
  2079 + cw.setJzl0(y.getJzl());
  2080 + }else if("1".equals(y.getRylx())){
  2081 + cw.setJzl10(y.getJzl());
  2082 + }
  2083 + cw.setJzyl(y.getJzyl());
  2084 + cw.setCzyl(y.getCzyl());
  2085 + cw.setRylx(y.getRylx());
  2086 + cw.setBglyh((y.getZlc()==0? 0:100*y.getYh()/y.getZlc()));
  2087 + }
  2088 + if(d != null) {
  2089 + cw.setZlc(d.getZlc());
  2090 + cw.setHd(d.getHd());
  2091 + cw.setJzcd(d.getJzcd());
  2092 + cw.setCzcd(d.getCzcd());
  2093 + cw.setCdl(d.getCdl());
  2094 + cw.setBglyh((d.getZlc()==0? 0:100*d.getHd()/d.getZlc()));
  2095 + }
  2096 + }
  2097 +
  2098 + String key = "",keyNext = "";
  2099 + if(flag == 1){
  2100 + if(cw.getjGh() != null && cw.getjName() != null)
  2101 + key += cw.getjGh() + "/" + cw.getjName();
  2102 + if(cwNext.getjGh() != null && cwNext.getjName() != null)
  2103 + keyNext += cwNext.getjGh() + "/" + cwNext.getjName();
  2104 + } else if(flag == 2){
  2105 + if(cw.getsGh() != null && cw.getsName() != null)
  2106 + key += cw.getsGh() + "/" + cw.getsName();
  2107 + if(cwNext.getsGh() != null && cwNext.getsName() != null)
  2108 + keyNext += cwNext.getsGh() + "/" + cwNext.getsName();
  2109 + } else if(flag == 3){
  2110 + if(cw.getCl() != null)
  2111 + key += cw.getCl();
  2112 + if(cwNext.getCl() != null)
  2113 + keyNext += cwNext.getCl();
  2114 + }
  2115 + key = cw.getFgsdm()+"/"+cw.getXl() + "/" + key;
  2116 + keyNext = cw.getFgsdm()+"/"+cwNext.getXl() + "/" + keyNext;
  2117 + CalcWaybillDetail calc = new CalcWaybillDetail();
  2118 + List<CalcWaybillDetail> calcList = new ArrayList<>();
  2119 + // 是否一行数据的第一个、生成key,calc为刚添加,不去和cw相加
  2120 + boolean ifFirst = false;
  2121 + if(keyMapList.containsKey(key)){
  2122 + calc = keyMap.get(key);
  2123 + calcList = keyMapList.get(key);
  2124 + } else {
  2125 + // 深度拷贝对象
  2126 + BeanUtils.copyProperties(cw,calc);
  2127 + keyMap.put(key, calc);
  2128 + dayIndex = 0;
  2129 + ifFirst = true;
  2130 + }
  2131 +
  2132 + CalcWaybillDetail dayc = null;
  2133 + if("m".equals(timeType)){
  2134 + while (!dayList.get(dayIndex).containsKey(cw.getRqStr())){
  2135 + calcList.add(new CalcWaybillDetail());
  2136 + dayIndex++;
  2137 + }
  2138 + dayc = dayList.get(dayIndex).get(cw.getRqStr());
  2139 + } else if("y".equals(timeType)){
  2140 + while (!dayList.get(dayIndex).containsKey(cw.getRqStr().substring(0,7))){
  2141 + calcList.add(new CalcWaybillDetail());
  2142 + dayIndex++;
  2143 + }
  2144 + dayc = dayList.get(dayIndex).get(cw.getRqStr().substring(0,7));
  2145 + }
  2146 +
  2147 +
  2148 + // 天数相加
  2149 + this.summation(dayc, cw);
  2150 + // 左边固定列数据相加
  2151 + if(!ifFirst)
  2152 + this.summation(calc, cw);
  2153 + // 左边合计相加
  2154 + this.summation(zjCalc, cw);
  2155 +
  2156 +
  2157 + if(dayIndexPrev == dayIndex){
  2158 + CalcWaybillDetail cwPrev = calcList.get(dayIndex);
  2159 + this.summation(cwPrev, cw);
  2160 + } else {
  2161 + CalcWaybillDetail cwd = new CalcWaybillDetail();
  2162 + // 深度拷贝对象
  2163 + BeanUtils.copyProperties(cw,cwd);
  2164 + calcList.add(cwd);
  2165 + calc.setTs(calc.getTs()+1);
  2166 + zjCalc.setTs(zjCalc.getTs()+1);
  2167 + }
  2168 +
  2169 + // 把下标
  2170 + dayIndexPrev = dayIndex;
  2171 + // timeType 为m 月报表时,日期不一样就换列,为y 年报表是,月份不一样换列
  2172 + if("m".equals(timeType) && cwNext != null && key.equals(keyNext) && !cw.getRqStr().equals(cwNext.getRqStr())){
  2173 + dayIndex++;
  2174 + } else if("y".equals(timeType) && cwNext != null && key.equals(keyNext) && !cw.getRqStr().substring(0,7).equals(cwNext.getRqStr().substring(0,7))){
  2175 + dayIndex++;
  2176 + } else if(!key.equals(keyNext)){
  2177 + // 满数据的不用补空格
  2178 + while (dayList.size() > dayIndex+1){
  2179 + calcList.add(new CalcWaybillDetail());
  2180 + dayIndex++;
  2181 + }
  2182 + // 换列了从头开始,上一个下标赋值为初始
  2183 + dayIndexPrev = -1;
  2184 + }
  2185 + // 右边可变列添加数据
  2186 + keyMapList.put(key,calcList);
  2187 + }
  2188 +
  2189 + // 表头和数据
  2190 + Iterator iter = keyMap.entrySet().iterator();
  2191 +
  2192 + List<String> list1 = new ArrayList<>();
  2193 + list1.add("序号");
  2194 + list1.add("所属公司");
  2195 + list1.add("线路");
  2196 + if(flag==1 ||flag==2 ){
  2197 + list1.add("工号");
  2198 + list1.add("姓名");
  2199 + } else if(flag==3){
  2200 + list1.add("自编号");
  2201 + list1.add("车牌号");
  2202 + }
  2203 + list1.add("计划公里");
  2204 + list1.add("总公里");
  2205 + list1.add("空驶公里");
  2206 + list1.add("临加公里");
  2207 + list1.add("烂班公里");
  2208 + list1.add("m".equals(timeType)?"天数":"月数");
  2209 + for(int i=day; i<=day2; i++){
  2210 + list1.add((i<10?"0"+i:i)+("m".equals(timeType)?"日":"月"));
  2211 + }
  2212 + if("bgldh".equals(itemDetails) || "bglyh".equals(itemDetails)){
  2213 + list1.add("平均");
  2214 + } else
  2215 + list1.add("合计");
  2216 + resList.add(list1);
  2217 +
  2218 + int i=1;
  2219 +
  2220 + DecimalFormat df = new DecimalFormat("0.00");//格式化小数
  2221 + double allNum = 0.0;
  2222 + while (iter.hasNext()) {
  2223 + Map.Entry entry = (Map.Entry) iter.next();
  2224 + // 获取key
  2225 + String key = (String) entry.getKey();
  2226 + // 获取value
  2227 + CalcWaybillDetail c = (CalcWaybillDetail) entry.getValue();
  2228 +
  2229 + List<CalcWaybillDetail> cList = keyMapList.get(key);
  2230 +
  2231 + List<String> listStr = new ArrayList<>();
  2232 + listStr.add(i+"");
  2233 + i++;
  2234 + listStr.add(c.getFgsname());
  2235 + listStr.add(c.getXlName());
  2236 + if("jsy".equals(statisticalObj)){
  2237 + listStr.add(c.getjGh());
  2238 + listStr.add(c.getjName());
  2239 + } else if("cwy".equals(statisticalObj)){
  2240 + listStr.add(c.getsGh());
  2241 + listStr.add(c.getsName());
  2242 + } else if("cl".equals(statisticalObj)){
  2243 + listStr.add(c.getCl());
  2244 + listStr.add(BasicData.nbbmCompanyPlateMap.get(c.getCl())+"");
  2245 + } else if("xl".equals(statisticalObj)){
  2246 +
  2247 + }
  2248 + listStr.add(df.format(c.getJhyylc()+c.getJhfyylc()));
  2249 + listStr.add(df.format(c.getSjyylc()+c.getSjfyylc()+c.getLjyylc()+c.getLjfyylc()));
  2250 +// listStr.add(df.format(c.getSjyylc()+c.getLjyylc()));
  2251 + listStr.add(df.format(c.getSjfyylc()+c.getLjfyylc()));
  2252 + listStr.add(df.format(c.getLjyylc()+c.getLjfyylc()));
  2253 + listStr.add(df.format(c.getLblc()));
  2254 + listStr.add(c.getTs()+"");
  2255 + c.setBglhd(c.getBglhd()/c.getTs());
  2256 + c.setBglyh(c.getBglyh()/c.getTs());
  2257 + // 把列合计的数添加到最后一个
  2258 + cList.add(c);
  2259 + // DecimalFormat df = new DecimalFormat("0.00");//格式化小数
  2260 + for (CalcWaybillDetail c1:cList) {
  2261 + if(StringUtils.isEmpty(c1.getXl())) {
  2262 + listStr.add("");
  2263 + } else{
  2264 + if("jzlAll".equals(itemDetails)){
  2265 + listStr.add(df.format(c1.getJzl()));
  2266 + }else if("jzl0".equals(itemDetails)){
  2267 + listStr.add(df.format(c1.getJzl0()));
  2268 + } else if("jzl-10".equals(itemDetails)){
  2269 + listStr.add(df.format(c1.getJzl10()));
  2270 + } else if("yhl".equals(itemDetails)){
  2271 + listStr.add(df.format(c1.getYh()));
  2272 + } else if("jccy".equals(itemDetails)){
  2273 + listStr.add(df.format(c1.getJzyl()));
  2274 + } else if("cccy".equals(itemDetails)){
  2275 + listStr.add(df.format(c1.getCzyl()));
  2276 + } else if("bglyh".equals(itemDetails)){
  2277 +// listStr.add(df.format(c1.getBglyh()));
  2278 + listStr.add(df.format(c1.getZlc()==0? 0:100*c1.getYh()/c1.getZlc()));
  2279 + } else if("dh".equals(itemDetails)){
  2280 + listStr.add(df.format(c1.getHd()));
  2281 + } else if("cdl".equals(itemDetails)){
  2282 + listStr.add(df.format(c1.getCdl()));
  2283 + } else if("cccd".equals(itemDetails)){
  2284 + listStr.add(df.format(c1.getCzcd()));
  2285 + } else if("jccd".equals(itemDetails)){
  2286 + listStr.add(df.format(c1.getJzcd()));
  2287 + } else if("bgldh".equals(itemDetails)){
  2288 + listStr.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc()));
  2289 +// listStr.add(df.format(c1.getBglhd()));
  2290 + } else if("zgl".equals(itemDetails)){
  2291 + listStr.add(df.format((c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc())));
  2292 + } else if("jhgl".equals(itemDetails)){
  2293 + listStr.add(df.format(c1.getJhyylc()+c1.getJhfyylc()));
  2294 + } else if("sjbc".equals(itemDetails)){
  2295 + listStr.add(c1.getSjyybc()+c1.getSjfyybc()+"");
  2296 + } else if("jhbc".equals(itemDetails)){
  2297 + listStr.add(c1.getJhyybc()+c1.getJhfyybc()+"");
  2298 + }
  2299 + }
  2300 + }
  2301 + allNum = allNum + Double.parseDouble(listStr.get(listStr.size()-1));
  2302 + resList.add(listStr);
  2303 + }
  2304 +
  2305 + // 合计列
  2306 + List<String> listEnd = new ArrayList<>();
  2307 + listEnd.add("合计");
  2308 + listEnd.add(df.format(zjCalc.getJhyylc()+zjCalc.getJhfyylc()));
  2309 + listEnd.add(df.format(zjCalc.getSjfyylc()+zjCalc.getSjyylc()+zjCalc.getLjyylc()+zjCalc.getLjfyylc()));//总公里
  2310 +// listEnd.add(df.format(zjCalc.getSjyylc()+zjCalc.getLjyylc()));//营运
  2311 + listEnd.add(df.format(zjCalc.getSjfyylc()+zjCalc.getLjfyylc()));
  2312 + listEnd.add(df.format(zjCalc.getLjfyylc()+zjCalc.getLjyylc()));
  2313 + listEnd.add(df.format(zjCalc.getLblc()));
  2314 + listEnd.add(zjCalc.getTs()+"");
  2315 + double all = 0.0;
  2316 + for (Map<String, CalcWaybillDetail> cmap:dayList) {
  2317 + for (Map.Entry<String, CalcWaybillDetail> cw : cmap.entrySet()) {
  2318 +// System.out.println("key = " + cw.getKey() + ", value = " + cw.getValue());
  2319 + CalcWaybillDetail c1 = cw.getValue();
  2320 + if("jzlAll".equals(itemDetails)){
  2321 + listEnd.add(df.format(c1.getJzl()));
  2322 + } else if("jzl0".equals(itemDetails)){
  2323 + listEnd.add(df.format(c1.getJzl0()));
  2324 + } else if("jzl-10".equals(itemDetails)){
  2325 + listEnd.add(df.format(c1.getJzl10()));
  2326 + } else if("yhl".equals(itemDetails)){
  2327 + listEnd.add(df.format(c1.getYh()));
  2328 + } else if("jccy".equals(itemDetails)){
  2329 + listEnd.add(df.format(c1.getJzyl()));
  2330 + } else if("cccy".equals(itemDetails)){
  2331 + listEnd.add(df.format(c1.getCzyl()));
  2332 + } else if("bglyh".equals(itemDetails)){
  2333 +// listEnd.add(df.format(c1.getBglyh()));
  2334 + listEnd.add(df.format(c1.getZlc()==0? 0:100*c1.getYh()/c1.getZlc()));
  2335 + } else if("dh".equals(itemDetails)){
  2336 + listEnd.add(df.format(c1.getHd()));
  2337 + } else if("cdl".equals(itemDetails)){
  2338 + listEnd.add(df.format(c1.getCdl()));
  2339 + } else if("cccd".equals(itemDetails)){
  2340 + listEnd.add(df.format(c1.getCzcd()));
  2341 + } else if("jccd".equals(itemDetails)){
  2342 + listEnd.add(df.format(c1.getJzcd()));
  2343 + } else if("bgldh".equals(itemDetails)){
  2344 +// listEnd.add(df.format(c1.getBglhd()));
  2345 + listEnd.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc()));
  2346 + } else if("zgl".equals(itemDetails)){
  2347 + listEnd.add((df.format(c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc())));
  2348 + } else if("jhgl".equals(itemDetails)){
  2349 + listEnd.add((df.format(c1.getJhyylc()+c1.getJhfyylc())));
  2350 + } else if("sjbc".equals(itemDetails)){
  2351 + listEnd.add(c1.getSjyybc()+c1.getSjfyybc()+"");
  2352 + } else if("jhbc".equals(itemDetails)){
  2353 + listEnd.add((c1.getJhyybc()+c1.getJhfyybc())+"");
  2354 + }
  2355 + }
  2356 + all = all + Double.parseDouble(listEnd.get(listEnd.size()-1));
  2357 + }
  2358 +
  2359 + // 百公里电油耗时为平均数
  2360 + if("bgldh".equals(itemDetails) || "bglyh".equals(itemDetails)){
  2361 + allNum = allNum/keyMap.size();
  2362 + all = all/dayList.size();
  2363 + }
  2364 +// listEnd.add(df.format(allNum)+"/"+df.format(all));
  2365 + listEnd.add(df.format(all));
  2366 + resList.add(listEnd);
  2367 +
  2368 + return resList;
  2369 + }
  2370 +
  2371 + public CalcWaybillDetail initCalcWaybillDetail(){
  2372 + CalcWaybillDetail calc = new CalcWaybillDetail();
  2373 + calc.setJhyybc(0);
  2374 + calc.setJhyylc(0d);
  2375 + calc.setJhfyybc(0);
  2376 + calc.setJhfyylc(0d);
  2377 + calc.setSjyybc(0);
  2378 + calc.setSjyylc(0d);
  2379 + calc.setSjfyybc(0);
  2380 + calc.setSjfyylc(0d);
  2381 + calc.setLbbc(0);
  2382 + calc.setLblc(0d);
  2383 + calc.setLjbc(0);
  2384 + calc.setLjyylc(0d);
  2385 + calc.setZlc(0d);
  2386 + calc.setCzyl(0d);
  2387 + calc.setJzyl(0d);
  2388 + calc.setJzl(0d);
  2389 + calc.setJzl0(0d);
  2390 + calc.setJzl10(0d);
  2391 + calc.setYh(0d);
  2392 + calc.setCzcd(0d);
  2393 + calc.setJzcd(0d);
  2394 + calc.setCdl(0d);
  2395 + calc.setHd(0d);
  2396 + calc.setTs(0);
  2397 + return calc;
  2398 + }
  2399 +
  2400 + public CalcWaybillDetail summation(CalcWaybillDetail c1, CalcWaybillDetail c2){
  2401 + c1.setJhyybc(c1.getJhyybc() + c2.getJhyybc());
  2402 + c1.setJhyylc(Arith.add(c1.getJhyylc(), c2.getJhyylc()));
  2403 + c1.setJhfyybc(c1.getJhfyybc() + c2.getJhfyybc());
  2404 + c1.setJhfyylc(Arith.add(c1.getJhfyylc(), c2.getJhfyylc()));
  2405 + c1.setSjyybc(c1.getSjyybc() + c2.getSjyybc());
  2406 + c1.setSjyylc(Arith.add(c1.getSjyylc(), c2.getSjyylc()));
  2407 +// c1.setSjyylc(Arith.add(c1.getSjyylc(), c2.getLjyylc()));// 把临加的也算上了,后面不用加了
  2408 + c1.setSjfyybc(c1.getSjfyybc() + c2.getSjfyybc());
  2409 + c1.setSjfyylc(Arith.add(c1.getSjfyylc(), c2.getSjfyylc()));
  2410 +// c1.setSjfyylc(Arith.add(c1.getSjfyylc(), c2.getLjfyylc()));// 把临加的也算上了,后面不用加了
  2411 + c1.setLbbc(c1.getLbbc() + c2.getLbbc());
  2412 + c1.setLblc(Arith.add(c1.getLblc(), c2.getLblc()));
  2413 + c1.setLjbc(c1.getLjbc() + c2.getLjbc());
  2414 + c1.setLjyylc(Arith.add(c1.getLjyylc(), c2.getLjyylc()));
  2415 + c1.setLjfyylc(Arith.add(c1.getLjfyylc(), c2.getLjfyylc()));
  2416 + c1.setZlc(Arith.add(c1.getZlc(),c2.getZlc()));
  2417 + c1.setCzyl(Arith.add(c1.getCzyl(),c2.getCzyl()));
  2418 + c1.setJzyl(Arith.add(c1.getJzyl(),c2.getJzyl()));
  2419 + c1.setJzl(Arith.add(c1.getJzl(),c2.getJzl()));
  2420 + c1.setJzl0(Arith.add(c1.getJzl0(),c2.getJzl0()));
  2421 + c1.setJzl10(Arith.add(c1.getJzl10(),c2.getJzl10()));
  2422 + c1.setYh(Arith.add(c1.getYh(),c2.getYh()));
  2423 + c1.setHd(Arith.add(c1.getHd(),c2.getHd()));
  2424 + c1.setCzcd(Arith.add(c1.getCzcd(),c2.getCzcd()));
  2425 + c1.setJzcd(Arith.add(c1.getJzcd(),c2.getJzcd()));
  2426 + c1.setCdl(Arith.add(c1.getCdl(),c2.getCdl()));
  2427 + c1.setHd(Arith.add(c1.getHd(),c2.getHd()));
  2428 + c1.setTs(c1.getTs()+c2.getTs());
  2429 +// c1.setDtbc(c1.getDtbc() + c2.getDtbc());
  2430 + return c1;
  2431 + }
1812 } 2432 }
1813 2433
1814 class AccountXlbmByping implements Comparator<Map<String, Object>> { 2434 class AccountXlbmByping implements Comparator<Map<String, Object>> {
src/main/java/com/bsth/service/impl/LineVersionsServiceImpl.java
@@ -89,12 +89,13 @@ public class LineVersionsServiceImpl extends BaseServiceImpl&lt;LineVersions, Integ @@ -89,12 +89,13 @@ public class LineVersionsServiceImpl extends BaseServiceImpl&lt;LineVersions, Integ
89 String lineCode = map.get("lineCode").toString(); 89 String lineCode = map.get("lineCode").toString();
90 Integer versions = Integer.valueOf(map.get("versions").toString()); 90 Integer versions = Integer.valueOf(map.get("versions").toString());
91 Integer status = Integer.valueOf(map.get("status").toString()); 91 Integer status = Integer.valueOf(map.get("status").toString());
  92 + String name = map.get("name").toString();
92 String remark = map.get("remark").toString(); 93 String remark = map.get("remark").toString();
93 - 94 +
94 Line line = lineRepository.findOne(lineid); 95 Line line = lineRepository.findOne(lineid);
95 96
96 int statu = repository.update(id,line,lineCode,new java.sql.Date(startDate.getTime()), 97 int statu = repository.update(id,line,lineCode,new java.sql.Date(startDate.getTime()),
97 - new java.sql.Date(endDate.getTime()),versions,status,remark); 98 + new java.sql.Date(endDate.getTime()),versions,status,remark,name);
98 LineVersions upLineVersions = repository.findBylineIdAndVersions(line.getId(),versions); 99 LineVersions upLineVersions = repository.findBylineIdAndVersions(line.getId(),versions);
99 if(upLineVersions != null){ 100 if(upLineVersions != null){
100 upLineVersions.setEndDate(new java.sql.Date(startDate.getTime())); 101 upLineVersions.setEndDate(new java.sql.Date(startDate.getTime()));
src/main/java/com/bsth/service/report/ReportService.java
@@ -61,4 +61,6 @@ public interface ReportService { @@ -61,4 +61,6 @@ public interface ReportService {
61 List<Singledata> singledatatj(Map<String, Object> map); 61 List<Singledata> singledatatj(Map<String, Object> map);
62 62
63 List<Map<String,Object>> singleEnergy(Map<String, Object> map); 63 List<Map<String,Object>> singleEnergy(Map<String, Object> map);
  64 +
  65 + Map<String,Object> calcDetailMonthlyE(Map<String, Object> map);
64 } 66 }
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
1 package com.bsth.service.report.impl; 1 package com.bsth.service.report.impl;
  2 +import com.bsth.common.ResponseCode;
2 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
3 import com.bsth.entity.CarDevice; 4 import com.bsth.entity.CarDevice;
4 import com.bsth.entity.Line; 5 import com.bsth.entity.Line;
@@ -16,6 +17,7 @@ import com.bsth.entity.sys.Interval; @@ -16,6 +17,7 @@ import com.bsth.entity.sys.Interval;
16 import com.bsth.repository.LineRepository; 17 import com.bsth.repository.LineRepository;
17 import com.bsth.repository.StationRouteRepository; 18 import com.bsth.repository.StationRouteRepository;
18 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 19 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  20 +import com.bsth.service.calc.CalcWaybillService;
19 import com.bsth.service.report.CulateMileageService; 21 import com.bsth.service.report.CulateMileageService;
20 import com.bsth.service.report.ReportService; 22 import com.bsth.service.report.ReportService;
21 import com.bsth.service.sys.DictionaryService; 23 import com.bsth.service.sys.DictionaryService;
@@ -27,6 +29,7 @@ import com.bsth.util.db.DBUtils_MS; @@ -27,6 +29,7 @@ import com.bsth.util.db.DBUtils_MS;
27 import com.google.protobuf.StringValue; 29 import com.google.protobuf.StringValue;
28 30
29 import org.apache.commons.lang.StringUtils; 31 import org.apache.commons.lang.StringUtils;
  32 +import org.apache.poi.hssf.usermodel.HSSFWorkbook;
30 import org.slf4j.Logger; 33 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory; 34 import org.slf4j.LoggerFactory;
32 import org.springframework.beans.factory.annotation.Autowired; 35 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +37,7 @@ import org.springframework.jdbc.core.JdbcTemplate; @@ -34,6 +37,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
34 import org.springframework.jdbc.core.RowMapper; 37 import org.springframework.jdbc.core.RowMapper;
35 import org.springframework.stereotype.Service; 38 import org.springframework.stereotype.Service;
36 39
  40 +import java.io.FileOutputStream;
37 import java.sql.Connection; 41 import java.sql.Connection;
38 import java.sql.PreparedStatement; 42 import java.sql.PreparedStatement;
39 import java.sql.ResultSet; 43 import java.sql.ResultSet;
@@ -75,7 +79,9 @@ public class ReportServiceImpl implements ReportService{ @@ -75,7 +79,9 @@ public class ReportServiceImpl implements ReportService{
75 CulateMileageService culateMileageService; 79 CulateMileageService culateMileageService;
76 @Autowired 80 @Autowired
77 DictionaryService dictionaryService; 81 DictionaryService dictionaryService;
78 - 82 + @Autowired
  83 + CalcWaybillService calcWaybillService;
  84 +
79 @Override 85 @Override
80 public List<ScheduleRealInfo> queryListBczx(String line, String date,String clzbh) { 86 public List<ScheduleRealInfo> queryListBczx(String line, String date,String clzbh) {
81 // TODO Auto-generated method stub 87 // TODO Auto-generated method stub
@@ -4220,6 +4226,27 @@ public class ReportServiceImpl implements ReportService{ @@ -4220,6 +4226,27 @@ public class ReportServiceImpl implements ReportService{
4220 return listAll; 4226 return listAll;
4221 } 4227 }
4222 4228
  4229 + public Map<String,Object> calcDetailMonthlyE(Map<String, Object> map){
  4230 +
  4231 + List<List<String>> list = calcWaybillService.calcDetailMonthly(map);
  4232 +
  4233 + Map<String, Object> resultMap = new HashMap<String, Object>();
  4234 + try {
  4235 + String name = map.get("name").toString();
  4236 + String type = map.get("statisticalObj").toString();
  4237 + if(list.size()>0){
  4238 + ReportUtils ee = new ReportUtils();
  4239 + ee.createFlie(list,name,type);
  4240 + }
  4241 +
  4242 + resultMap.put("status", ResponseCode.SUCCESS);
  4243 + } catch (Exception e) {
  4244 + resultMap.put("status", ResponseCode.ERROR);
  4245 + logger.error("save erro.", e);
  4246 + }
  4247 + return resultMap;
  4248 + }
  4249 +
4223 private String getShyy(String node){ 4250 private String getShyy(String node){
4224 String shyy ="无"; 4251 String shyy ="无";
4225 if(!node.equals("")){ 4252 if(!node.equals("")){
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
@@ -611,7 +611,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -611,7 +611,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
611 try { 611 try {
612 612
613 String sql = "select schedule_date_str,xl_name,bc_type,gs_name,fgs_name,fgs_bm,bcs," 613 String sql = "select schedule_date_str,xl_name,bc_type,gs_name,fgs_name,fgs_bm,bcs,"
614 - +"fcno,fcsj,fcsj_actual,zdsj,zdsj_actual,bcsj,qdz_name,sp_id,cc_service" 614 + +"fcno,fcsj,fcsj_actual,zdsj,zdsj_actual,bcsj,qdz_name,sp_id,cc_service,lp_name"
615 +" from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate 615 +" from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate
616 +"' and schedule_date_str <= '"+endDate+"'"; 616 +"' and schedule_date_str <= '"+endDate+"'";
617 if(line.length() != 0){ 617 if(line.length() != 0){
@@ -650,6 +650,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -650,6 +650,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
650 schedule.setQdzName(rs.getString("qdz_name")); 650 schedule.setQdzName(rs.getString("qdz_name"));
651 schedule.setSpId(rs.getLong("sp_id")); 651 schedule.setSpId(rs.getLong("sp_id"));
652 schedule.setCcService(rs.getBoolean("cc_service")); 652 schedule.setCcService(rs.getBoolean("cc_service"));
  653 + schedule.setLpName(rs.getString("lp_name"));
653 654
654 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){ 655 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
655 schedule.setFcsjActual(null); 656 schedule.setFcsjActual(null);
@@ -718,7 +719,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -718,7 +719,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
718 continue; 719 continue;
719 } 720 }
720 721
721 - String key = schedule.getXlName()+"/"+schedule.getQdzName()+"/"+schedule.getFcsj()+"/"+schedule.getFgsBm(); 722 + String key = schedule.getXlName()+"/"+schedule.getQdzName()+"/"+schedule.getFcsj()+"/"+schedule.getFgsBm()+"/"+schedule.getLpName();
722 if(model.length() != 0){ 723 if(model.length() != 0){
723 if(ttSet.contains(schedule.getSpId())){ 724 if(ttSet.contains(schedule.getSpId())){
724 if(!keyMap.containsKey(key)) 725 if(!keyMap.containsKey(key))
@@ -810,6 +811,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -810,6 +811,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
810 tempMap.put("line", split[0]); 811 tempMap.put("line", split[0]);
811 tempMap.put("qdz", split[1]); 812 tempMap.put("qdz", split[1]);
812 tempMap.put("jhfc", split[2]); 813 tempMap.put("jhfc", split[2]);
  814 + tempMap.put("lp", split[4]);
813 tempMap.put("jhbc", jhbc); 815 tempMap.put("jhbc", jhbc);
814 tempMap.put("sjbc", sjbc); 816 tempMap.put("sjbc", sjbc);
815 tempList.add(tempMap); 817 tempList.add(tempMap);
@@ -819,27 +821,32 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -819,27 +821,32 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
819 Map<String, List<Map<String, Object>>> listMap = new HashMap<String, List<Map<String, Object>>>(); 821 Map<String, List<Map<String, Object>>> listMap = new HashMap<String, List<Map<String, Object>>>();
820 Map<String, List<Map<String, Object>>> listMap2 = new HashMap<String, List<Map<String, Object>>>(); 822 Map<String, List<Map<String, Object>>> listMap2 = new HashMap<String, List<Map<String, Object>>>();
821 for(Map<String, Object> m : tempList){ 823 for(Map<String, Object> m : tempList){
822 - String key = m.get("line").toString() + m.get("qdz") + m.get("subCompany"); 824 + String key = m.get("line").toString() + "/" + m.get("qdz") + "/" + m.get("subCompany");
823 if(!listMap.containsKey(key)) 825 if(!listMap.containsKey(key))
824 listMap.put(key, new ArrayList<Map<String, Object>>()); 826 listMap.put(key, new ArrayList<Map<String, Object>>());
825 listMap.get(key).add(m); 827 listMap.get(key).add(m);
826 } 828 }
827 for(String key : listMap.keySet()){ 829 for(String key : listMap.keySet()){
828 - Map<Integer, Map<String, Object>> tempMap = new HashMap<Integer, Map<String,Object>>(); 830 + Map<Integer, List<Map<String, Object>>> tempMap = new HashMap<Integer, List<Map<String,Object>>>();
829 List<Integer> keyList = new ArrayList<Integer>(); 831 List<Integer> keyList = new ArrayList<Integer>();
830 for(Map<String, Object> m : listMap.get(key)){ 832 for(Map<String, Object> m : listMap.get(key)){
831 String[] split = m.get("jhfc").toString().split(":"); 833 String[] split = m.get("jhfc").toString().split(":");
832 int jhfc = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]); 834 int jhfc = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);
833 - tempMap.put(jhfc, m);  
834 - keyList.add(jhfc); 835 + if(!tempMap.containsKey(jhfc)){
  836 + tempMap.put(jhfc, new ArrayList<Map<String, Object>>());
  837 + keyList.add(jhfc);
  838 + }
  839 + tempMap.get(jhfc).add(m);
  840 +
835 } 841 }
836 Collections.sort(keyList); 842 Collections.sort(keyList);
837 for(Integer Int : keyList){ 843 for(Integer Int : keyList){
838 - Map<String, Object> m = tempMap.get(Int); 844 + List<Map<String, Object>> l = tempMap.get(Int);
  845 + Map<String, Object> m = l.get(0);
839 String str = m.get("line").toString(); 846 String str = m.get("line").toString();
840 if(!listMap2.containsKey(str)) 847 if(!listMap2.containsKey(str))
841 listMap2.put(str, new ArrayList<Map<String, Object>>()); 848 listMap2.put(str, new ArrayList<Map<String, Object>>());
842 - listMap2.get(str).add(m); 849 + listMap2.get(str).addAll(l);
843 } 850 }
844 } 851 }
845 for(String str : listMap2.keySet()){ 852 for(String str : listMap2.keySet()){
@@ -860,6 +867,13 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -860,6 +867,13 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
860 867
861 //导出 868 //导出
862 if(type.equals("export")){ 869 if(type.equals("export")){
  870 + for(Map<String, Object> m : resList){
  871 + if(m.get("lp") != null){
  872 + if(m.get("lp").toString().contains("+") || m.get("lp").toString().contains("-")){
  873 + m.put("lp", "\'" + m.get("lp").toString().trim());
  874 + }
  875 + }
  876 + }
863 String lineName = ""; 877 String lineName = "";
864 if(map.containsKey("lineName")) 878 if(map.containsKey("lineName"))
865 lineName = map.get("lineName").toString(); 879 lineName = map.get("lineName").toString();
src/main/java/com/bsth/util/ReportUtils.java
@@ -8,20 +8,26 @@ import java.util.HashMap; @@ -8,20 +8,26 @@ import java.util.HashMap;
8 import java.util.Iterator; 8 import java.util.Iterator;
9 import java.util.List; 9 import java.util.List;
10 import java.util.Map; 10 import java.util.Map;
  11 +import java.util.TreeMap;
11 import java.util.regex.Matcher; 12 import java.util.regex.Matcher;
12 import java.util.regex.Pattern; 13 import java.util.regex.Pattern;
13 14
  15 +import com.bsth.common.ResponseCode;
14 import org.apache.poi.hssf.usermodel.HSSFCell; 16 import org.apache.poi.hssf.usermodel.HSSFCell;
15 import org.apache.poi.hssf.usermodel.HSSFCellStyle; 17 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  18 +import org.apache.poi.hssf.usermodel.HSSFFont;
16 import org.apache.poi.hssf.usermodel.HSSFRow; 19 import org.apache.poi.hssf.usermodel.HSSFRow;
17 import org.apache.poi.hssf.usermodel.HSSFSheet; 20 import org.apache.poi.hssf.usermodel.HSSFSheet;
18 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 21 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
19 import org.apache.poi.poifs.filesystem.POIFSFileSystem; 22 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
20 import org.apache.poi.ss.usermodel.Cell; 23 import org.apache.poi.ss.usermodel.Cell;
  24 +import org.apache.poi.ss.usermodel.Workbook;
21 import org.apache.poi.ss.util.CellRangeAddress; 25 import org.apache.poi.ss.util.CellRangeAddress;
22 26
23 import com.bsth.entity.Line; 27 import com.bsth.entity.Line;
24 import com.bsth.entity.realcontrol.ScheduleRealInfo; 28 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  29 +import org.apache.poi.ss.util.RegionUtil;
  30 +import org.apache.poi.xssf.usermodel.XSSFCell;
25 31
26 public class ReportUtils { 32 public class ReportUtils {
27 // private final String packaegName = "com.bsth.entity."; 33 // private final String packaegName = "com.bsth.entity.";
@@ -694,4 +700,124 @@ public class ReportUtils { @@ -694,4 +700,124 @@ public class ReportUtils {
694 } 700 }
695 } 701 }
696 702
  703 + public void createFlie(List<List<String>> list, String name, String type){
  704 + HSSFWorkbook workbook = new HSSFWorkbook();
  705 + // 生成一个样式
  706 + HSSFCellStyle style = workbook.createCellStyle();
  707 + // 设置这些样式
  708 +// style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
  709 +// style.setFillPattern(HSSFCellStyle.BORDER_THIN);
  710 + style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  711 + style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  712 + style.setBorderRight(HSSFCellStyle.BORDER_THIN);
  713 + style.setBorderTop(HSSFCellStyle.BORDER_THIN);
  714 + style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  715 + // 生成一个字体
  716 + HSSFFont font = workbook.createFont();
  717 +// font.setColor(HSSFColor.VIOLET.index);
  718 + font.setFontHeightInPoints((short) 12);
  719 + font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  720 + // 把字体应用到当前的样式
  721 + style.setFont(font);
  722 + HSSFCellStyle cellStyle =workbook.createCellStyle();
  723 + cellStyle.setFont(font);
  724 + cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
  725 + cellStyle.setWrapText(true);
  726 +
  727 + //设置wordsheet名
  728 + HSSFSheet sheetYS = workbook.createSheet();//设置wordsheet名
  729 +
  730 + try{
  731 + for(int i=0; i<list.size(); i++){
  732 + HSSFRow rowYSi = sheetYS.createRow(i);
  733 + List<String> stringList = list.get(i);
  734 + int num = 4;
  735 + if("xl".equals(type))
  736 + num = 2;
  737 + for(int j=0; j<stringList.size(); j++){
  738 + String str = stringList.get(j);
  739 + if(i == list.size()-1){
  740 + if(j==0) {
  741 + setCellStyleAndValue(rowYSi, style, j, str);
  742 + CellRangeAddress callRangeAddressYSi = new CellRangeAddress(i,i,0,num);
  743 + sheetYS.addMergedRegion(callRangeAddressYSi);
  744 + // 样式
  745 + setMergeCellStyle (callRangeAddressYSi, sheetYS, workbook);
  746 + }else
  747 + setCellStyleAndValue(rowYSi,style,j+num,str);
  748 + } else {
  749 + setCellStyleAndValue(rowYSi,style,j,str);
  750 + }
  751 + }
  752 + }
  753 +
  754 + // 给列设置宽度自适应
  755 + setSizeColumn(sheetYS,list.get(0).size());
  756 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/export/";
  757 + String targetPath = path+name+".xls";
  758 + createFolder(targetPath);
  759 + FileOutputStream fout = new FileOutputStream(targetPath);
  760 + //5.输出
  761 + workbook.write(fout);
  762 + fout.close();
  763 + } catch (Exception e) {
  764 + }
  765 + }
  766 +
  767 + /**
  768 + * 自适应宽度(中文支持)
  769 + * @param sheet
  770 + * @param size
  771 + */
  772 + private static void setSizeColumn(HSSFSheet sheet, int size) {
  773 + for (int columnNum = 0; columnNum < size; columnNum++) {
  774 + int columnWidth = sheet.getColumnWidth(columnNum) / 256;
  775 + for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {
  776 + HSSFRow currentRow;
  777 + //当前行未被使用过
  778 + if (sheet.getRow(rowNum) == null) {
  779 + currentRow = sheet.createRow(rowNum);
  780 + } else {
  781 + currentRow = sheet.getRow(rowNum);
  782 + }
  783 + if (currentRow.getCell(columnNum) != null) {
  784 + HSSFCell currentCell = currentRow.getCell(columnNum);
  785 + if (currentCell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
  786 + int length = currentCell.getStringCellValue().getBytes().length;
  787 + if (columnWidth < length) {
  788 + columnWidth = length;
  789 + }
  790 + }
  791 + }
  792 + }
  793 + sheet.setColumnWidth(columnNum, columnWidth * 300);
  794 +// sheet.setColumnWidth(columnNum, columnWidth * 256);
  795 + }
  796 + }
  797 +
  798 + /**
  799 + * 设置单元格值和样式
  800 + * @param row
  801 + * @param style
  802 + * @param index
  803 + * @param value
  804 + */
  805 + public static void setCellStyleAndValue(HSSFRow row,HSSFCellStyle style,int index,String value){
  806 + HSSFCell cell = row.createCell(index);
  807 + cell.setCellValue(value);
  808 + cell.setCellStyle(style);
  809 + }
  810 + /**
  811 + * 设置合并单元格样式
  812 + * @param cra
  813 + * @param sheet
  814 + * @param workbook
  815 + */
  816 + public static void setMergeCellStyle (CellRangeAddress cra, HSSFSheet sheet, Workbook workbook){
  817 + // 使用RegionUtil类为合并后的单元格添加边框
  818 + RegionUtil.setBorderBottom(1, cra, sheet, workbook); // 下边框
  819 + RegionUtil.setBorderLeft(1, cra, sheet, workbook); // 左边框
  820 + RegionUtil.setBorderRight(1, cra, sheet, workbook); // 有边框
  821 + RegionUtil.setBorderTop(1, cra, sheet, workbook); // 上边框
  822 + }
697 } 823 }
src/main/resources/datatools/ktrs/ttinfodetailoutputforedit.ktr
@@ -218,102 +218,6 @@ @@ -218,102 +218,6 @@
218 </attributes> 218 </attributes>
219 </connection> 219 </connection>
220 <connection> 220 <connection>
221 - <name>JGJW_VM</name>  
222 - <server>192.168.198.240</server>  
223 - <type>ORACLE</type>  
224 - <access>Native</access>  
225 - <database>orcl</database>  
226 - <port>1521</port>  
227 - <username>jwgl</username>  
228 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10d485a8d6</password>  
229 - <servername/>  
230 - <data_tablespace/>  
231 - <index_tablespace/>  
232 - <attributes>  
233 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
234 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
235 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
236 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
237 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
238 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
239 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
240 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
241 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
242 - </attributes>  
243 - </connection>  
244 - <connection>  
245 - <name>NHJW_VM</name>  
246 - <server>192.168.198.240</server>  
247 - <type>ORACLE</type>  
248 - <access>Native</access>  
249 - <database>orcl</database>  
250 - <port>1521</port>  
251 - <username>nhjw</username>  
252 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10d09aa5cd</password>  
253 - <servername/>  
254 - <data_tablespace/>  
255 - <index_tablespace/>  
256 - <attributes>  
257 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
258 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
259 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
260 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
261 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
262 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
263 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
264 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
265 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
266 - </attributes>  
267 - </connection>  
268 - <connection>  
269 - <name>PDGJ_VM</name>  
270 - <server>192.168.198.240</server>  
271 - <type>ORACLE</type>  
272 - <access>Native</access>  
273 - <database>orcl</database>  
274 - <port>1521</port>  
275 - <username>pdgj</username>  
276 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10ce96a8d0</password>  
277 - <servername/>  
278 - <data_tablespace/>  
279 - <index_tablespace/>  
280 - <attributes>  
281 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
282 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
283 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
284 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
285 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
286 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
287 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
288 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
289 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
290 - </attributes>  
291 - </connection>  
292 - <connection>  
293 - <name>SNJW_VM</name>  
294 - <server>192.168.198.240</server>  
295 - <type>ORACLE</type>  
296 - <access>Native</access>  
297 - <database>orcl</database>  
298 - <port>1521</port>  
299 - <username>snjw</username>  
300 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10cd9ca5cd</password>  
301 - <servername/>  
302 - <data_tablespace/>  
303 - <index_tablespace/>  
304 - <attributes>  
305 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
306 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
307 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
308 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
309 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
310 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
311 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
312 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
313 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
314 - </attributes>  
315 - </connection>  
316 - <connection>  
317 <name>xlab_mysql_youle</name> 221 <name>xlab_mysql_youle</name>
318 <server>101.231.124.8</server> 222 <server>101.231.124.8</server>
319 <type>MYSQL</type> 223 <type>MYSQL</type>
@@ -392,102 +296,6 @@ @@ -392,102 +296,6 @@
392 <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> 296 <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
393 </attributes> 297 </attributes>
394 </connection> 298 </connection>
395 - <connection>  
396 - <name>YGJW_VM</name>  
397 - <server>192.168.198.240</server>  
398 - <type>ORACLE</type>  
399 - <access>Native</access>  
400 - <database>orcl</database>  
401 - <port>1521</port>  
402 - <username>ygjw</username>  
403 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10c795a5cd</password>  
404 - <servername/>  
405 - <data_tablespace/>  
406 - <index_tablespace/>  
407 - <attributes>  
408 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
409 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
410 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
411 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
412 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
413 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
414 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
415 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
416 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
417 - </attributes>  
418 - </connection>  
419 - <connection>  
420 - <name>&#x516c;&#x53f8;jgjw</name>  
421 - <server>192.168.168.1</server>  
422 - <type>ORACLE</type>  
423 - <access>Native</access>  
424 - <database>orcl</database>  
425 - <port>1521</port>  
426 - <username>jwgl</username>  
427 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10d485a8d6</password>  
428 - <servername/>  
429 - <data_tablespace/>  
430 - <index_tablespace/>  
431 - <attributes>  
432 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
433 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
434 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
435 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
436 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
437 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
438 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
439 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
440 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
441 - </attributes>  
442 - </connection>  
443 - <connection>  
444 - <name>&#x516c;&#x53f8;snjw</name>  
445 - <server>192.168.168.1</server>  
446 - <type>ORACLE</type>  
447 - <access>Native</access>  
448 - <database>orcl</database>  
449 - <port>1521</port>  
450 - <username>snjw</username>  
451 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10cd9ca5cd</password>  
452 - <servername/>  
453 - <data_tablespace/>  
454 - <index_tablespace/>  
455 - <attributes>  
456 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
457 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
458 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
459 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
460 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
461 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
462 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
463 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
464 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
465 - </attributes>  
466 - </connection>  
467 - <connection>  
468 - <name>&#x516c;&#x53f8;ygjw</name>  
469 - <server>192.168.168.1</server>  
470 - <type>ORACLE</type>  
471 - <access>Native</access>  
472 - <database>orcl</database>  
473 - <port>1521</port>  
474 - <username>ygjw</username>  
475 - <password>Encrypted 2be98afc86aa7f2e4cb79ce10c795a5cd</password>  
476 - <servername/>  
477 - <data_tablespace/>  
478 - <index_tablespace/>  
479 - <attributes>  
480 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
481 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
482 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
483 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
484 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
485 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
486 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
487 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
488 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
489 - </attributes>  
490 - </connection>  
491 <order> 299 <order>
492 <hop> <from>&#x5217;&#x8f6c;&#x884c;</from><to>&#x53bb;&#x9664;&#x5b57;&#x6bb5;</to><enabled>Y</enabled> </hop> 300 <hop> <from>&#x5217;&#x8f6c;&#x884c;</from><to>&#x53bb;&#x9664;&#x5b57;&#x6bb5;</to><enabled>Y</enabled> </hop>
493 <hop> <from>&#x53bb;&#x9664;&#x5b57;&#x6bb5;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop> 301 <hop> <from>&#x53bb;&#x9664;&#x5b57;&#x6bb5;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
@@ -4084,7 +3892,7 @@ @@ -4084,7 +3892,7 @@
4084 <optimizationLevel>9</optimizationLevel> 3892 <optimizationLevel>9</optimizationLevel>
4085 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> 3893 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
4086 <jsScript_name>Script 1</jsScript_name> 3894 <jsScript_name>Script 1</jsScript_name>
4087 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x987a;&#x5e8f;&#xff0c;id,fcsj,jhlc,zdname,bctype,xldir,isfb&#xa;var all_content_array &#x3d; &#x5b;&#x5d;&#x3b;&#xa;var all_content &#x3d; &#x22;&#x22;&#x3b; &#xa;all_content_array.push&#x28;id&#x29;&#x3b;&#xa;all_content_array.push&#x28;fcsj&#x29;&#x3b;&#xa;all_content_array.push&#x28;jhlc&#x29;&#x3b;&#xa;all_content_array.push&#x28;fczdName&#x29;&#x3b;&#xa;all_content_array.push&#x28;bc_type&#x29;&#x3b;&#xa;all_content_array.push&#x28;xl_dir&#x29;&#x3b;&#xa;all_content_array.push&#x28;isfb&#x29;&#x3b;&#xa;all_content_array.push&#x28;qdz_code &#x7c;&#x7c; &#x27;null&#x27;&#x29;&#x3b;&#xa;all_content_array.push&#x28;zdz_code &#x7c;&#x7c; &#x27;null&#x27;&#x29;&#x3b;&#xa;all_content_array.push&#x28;ists&#x29;&#x3b;&#xa;all_content_array.push&#x28;bcsj &#x7c;&#x7c; &#x27;null&#x27;&#x29;&#x3b;&#xa;&#xa;all_content &#x3d; all_content_array.join&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;</jsScript_script> 3895 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x987a;&#x5e8f;&#xff0c;id,fcsj,jhlc,zdname,bctype,xldir,isfb&#xa;var all_content_array &#x3d; &#x5b;&#x5d;&#x3b;&#xa;var all_content &#x3d; &#x22;&#x22;&#x3b; &#xa;all_content_array.push&#x28;id&#x29;&#x3b;&#xa;all_content_array.push&#x28;fcsj&#x29;&#x3b;&#xa;all_content_array.push&#x28;jhlc&#x29;&#x3b;&#xa;all_content_array.push&#x28;fczdName&#x29;&#x3b;&#xa;all_content_array.push&#x28;bc_type&#x29;&#x3b;&#xa;all_content_array.push&#x28;xl_dir&#x29;&#x3b;&#xa;all_content_array.push&#x28;isfb&#x29;&#x3b;&#xa;all_content_array.push&#x28;qdz_code &#x7c;&#x7c; &#x27;null&#x27;&#x29;&#x3b;&#xa;all_content_array.push&#x28;zdz_code &#x7c;&#x7c; &#x27;null&#x27;&#x29;&#x3b;&#xa;all_content_array.push&#x28;ists&#x29;&#x3b;&#xa;&#xa;all_content &#x3d; all_content_array.join&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;</jsScript_script>
4088 </jsScript> </jsScripts> <fields> <field> <name>all_content</name> 3896 </jsScript> </jsScripts> <fields> <field> <name>all_content</name>
4089 <rename>all_content</rename> 3897 <rename>all_content</rename>
4090 <type>String</type> 3898 <type>String</type>
@@ -4156,7 +3964,7 @@ @@ -4156,7 +3964,7 @@
4156 <schema_name/> 3964 <schema_name/>
4157 </partitioning> 3965 </partitioning>
4158 <connection>bus_control_variable</connection> 3966 <connection>bus_control_variable</connection>
4159 - <sql>select &#xa;t.id as id&#xa;, concat&#x28;g.id, &#x27;_&#x27;, g.lp_name&#x29; as lp&#xa;, g.xl as xl&#xa;, qdz_code&#xa;, qdz_name&#xa;, zdz_code&#xa;, zdz_name&#xa;, fcsj&#xa;, jhlc&#xa;, bc_type &#xa;, bcs&#xa;, fcno&#xa;, xl_dir&#xa;, isfb&#xa;, ists&#xa;, bcsj &#xa;from bsth_c_s_ttinfo_detail t left join &#xa;bsth_c_s_gbi g on t.lp &#x3d; g.id &#xa;where &#xa;g.xl &#x3d; &#x3f; and&#xa;t.ttinfo &#x3d; &#x3f; &#xa;order by g.lp_no asc, t.bcs asc</sql> 3967 + <sql>select &#xa;t.id as id&#xa;, concat&#x28;g.id, &#x27;_&#x27;, g.lp_name&#x29; as lp&#xa;, g.xl as xl&#xa;, qdz_code&#xa;, qdz_name&#xa;, zdz_code&#xa;, zdz_name&#xa;, fcsj&#xa;, jhlc&#xa;, bc_type &#xa;, bcs&#xa;, fcno&#xa;, xl_dir&#xa;, isfb&#xa;, ists&#xa;from bsth_c_s_ttinfo_detail t left join &#xa;bsth_c_s_gbi g on t.lp &#x3d; g.id &#xa;where &#xa;g.xl &#x3d; &#x3f; and&#xa;t.ttinfo &#x3d; &#x3f; &#xa;order by g.lp_no asc, t.bcs asc</sql>
4160 <limit>0</limit> 3968 <limit>0</limit>
4161 <lookup>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</lookup> 3969 <lookup>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</lookup>
4162 <execute_each_row>N</execute_each_row> 3970 <execute_each_row>N</execute_each_row>
src/main/resources/dubbo/config-dev.properties
1 -# application名字  
2 -spring.dubbo.application.name=bsth_control_v_multi_service  
3 -# zookeeper注册中心地址  
4 -spring.dubbo.registry=zookeeper://127.0.0.1:2181  
5 -# protocol配置  
6 -spring.dubbo.protocol.name=dubbo  
7 -spring.dubbo.protocol.port=30881  
8 -  
9 -#----------- dubbo:consumer 性能调优选项 -------------#  
10 -# 远程服务调用超时时间,单位毫秒,这里设置30分钟  
11 -spring.dubbo.consumer.timeout=1800000  
12 -# 远程服务调用重试次数,0表示不需要重试  
13 -spring.dubbo.consumer.retries=0  
14 -#----------- dubbo:consumer 服务治理选项 -------------#  
15 -# 启动不检查提供者是否存在  
16 -spring.dubbo.consumer.check=false 1 +# application名字
  2 +spring.dubbo.application.name=bsth_control_v_multi_service
  3 +# zookeeper注册中心地址
  4 +spring.dubbo.registry=zookeeper://127.0.0.1:2181
  5 +# protocol配置
  6 +spring.dubbo.protocol.name=dubbo
  7 +spring.dubbo.protocol.port=30881
  8 +
  9 +#----------- dubbo:consumer 性能调优选项 -------------#
  10 +# 远程服务调用超时时间,单位毫秒,这里设置30分钟
  11 +spring.dubbo.consumer.timeout=1800000
  12 +# 远程服务调用重试次数,0表示不需要重试
  13 +spring.dubbo.consumer.retries=0
  14 +#----------- dubbo:consumer 服务治理选项 -------------#
  15 +# 启动不检查提供者是否存在
  16 +spring.dubbo.consumer.check=false
src/main/resources/dubbo/config-prod.properties
1 -# application名字  
2 -spring.dubbo.application.name=bsth_control_v_multi_service  
3 -# zookeeper注册中心地址  
4 -spring.dubbo.registry=zookeeper://127.0.0.1:2181  
5 -# protocol配置  
6 -spring.dubbo.protocol.name=dubbo  
7 -spring.dubbo.protocol.port=30881  
8 -  
9 -#----------- dubbo:consumer 性能调优选项 -------------#  
10 -# 远程服务调用超时时间,单位毫秒,这里设置30分钟  
11 -spring.dubbo.consumer.timeout=1800000  
12 -# 远程服务调用重试次数,0表示不需要重试  
13 -spring.dubbo.consumer.retries=0  
14 -#----------- dubbo:consumer 服务治理选项 -------------#  
15 -# 启动不检查提供者是否存在  
16 -spring.dubbo.consumer.check=false 1 +# application名字
  2 +spring.dubbo.application.name=bsth_control_v_multi_service
  3 +# zookeeper注册中心地址
  4 +spring.dubbo.registry=zookeeper://127.0.0.1:2181
  5 +# protocol配置
  6 +spring.dubbo.protocol.name=dubbo
  7 +spring.dubbo.protocol.port=30881
  8 +
  9 +#----------- dubbo:consumer 性能调优选项 -------------#
  10 +# 远程服务调用超时时间,单位毫秒,这里设置30分钟
  11 +spring.dubbo.consumer.timeout=1800000
  12 +# 远程服务调用重试次数,0表示不需要重试
  13 +spring.dubbo.consumer.retries=0
  14 +#----------- dubbo:consumer 服务治理选项 -------------#
  15 +# 启动不检查提供者是否存在
  16 +spring.dubbo.consumer.check=false
src/main/resources/static/pages/base/line/editRoute.html
@@ -36,8 +36,18 @@ @@ -36,8 +36,18 @@
36 </div> 36 </div>
37 </div> 37 </div>
38 <div class="form-group"> 38 <div class="form-group">
  39 + <label class="col-md-3 control-label">选择文本类型:</label>
  40 + <div class="col-md-3">
  41 + <div class="icheck-list">
  42 + <label> <input type="radio" class="icheck"
  43 + name="typeCheck" value='0' checked> txt
  44 + </label> <label> <input type="radio" class="icheck"
  45 + name="typeCheck" value='1'> xml
  46 + </label>
  47 + </div>
  48 + </div>
39 <label class="col-md-3 control-label">选择方向:</label> 49 <label class="col-md-3 control-label">选择方向:</label>
40 - <div class="col-md-9"> 50 + <div class="col-md-3">
41 <div class="icheck-list"> 51 <div class="icheck-list">
42 <label> <input type="radio" class="icheck" 52 <label> <input type="radio" class="icheck"
43 name="dirCheck" value='0' checked> 上行 53 name="dirCheck" value='0' checked> 上行
@@ -55,16 +65,22 @@ @@ -55,16 +65,22 @@
55 坐标生成路线规划说明: </span> 65 坐标生成路线规划说明: </span>
56 </h5> 66 </h5>
57 <p> 67 <p>
  68 +
58 <span class="help-block" style="color: #1bbc9b;"> 69 <span class="help-block" style="color: #1bbc9b;">
59 - &nbsp;请在文本域中按顺序依次输坐标点,每行中的数据之间用【Tab】键隔开(如果是站点,请将在坐标后面加 stop;没有  
60 - stop默认是路段点,连续带stop的坐标认为是同一个站点),每输入完一个坐标时请按回车键【Enter】换行. 例如:<!-- <br> 121.715623  
61 - 31.224058 042408.000<br> 121.715623 31.224065 042409.000  
62 - Stop<br> 121.715623 31.224065 042410.000<br> --> 70 + 1.txt格式
  71 + <br>&nbsp;请在文本域中按顺序依次输坐标点,每行中的数据之间用【Tab】键隔开(如果是站点,请将在坐标后面加 stop;没有
  72 + stop默认是路段点,连续带stop的坐标认为是同一个站点),每输入完一个坐标时请按回车键【Enter】换行. 例如:
63 <br>121.511870 31.180638 043703.000 73 <br>121.511870 31.180638 043703.000
64 <br>121.511870 31.180643 043705.000 74 <br>121.511870 31.180643 043705.000
65 <br>121.511870 31.180648 043706.000 Stop 75 <br>121.511870 31.180648 043706.000 Stop
66 <br>121.511872 31.180653 043707.000 76 <br>121.511872 31.180653 043707.000
67 - <br>121.511873 31.180658 043708.000 77 + </span>
  78 + </p>
  79 + <p>
  80 +
  81 + <span class="help-block" style="color: #1bbc9b;">
  82 + 2.xml格式
  83 + <br>用gps生成工具,生成的kml文件里的数据
68 </span> 84 </span>
69 </p> 85 </p>
70 </div> 86 </div>
@@ -95,7 +111,55 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m @@ -95,7 +111,55 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m
95 $('.modal-footer #templateSaveData').on('click',function() { 111 $('.modal-footer #templateSaveData').on('click',function() {
96 form.submit(); 112 form.submit();
97 }); 113 });
98 - // 表单验证 114 +
  115 +
  116 + //从xml中获取节点内容
  117 + function getXmlNode(str){
  118 + //创建文档对象
  119 + var parser=new DOMParser();
  120 + var xmlDoc=parser.parseFromString(str,"text/xml");
  121 +
  122 + //提取数据
  123 + var countrys = xmlDoc.getElementsByTagName('coordinates');
  124 + //var countrys = xmlDoc.getElementsByTagName('DataSource');
  125 +
  126 + var arr = [];
  127 +
  128 + for (var i = 0; i < countrys.length; i++) {
  129 + arr.push(countrys[i].textContent);
  130 + };
  131 + // console.log(arr);
  132 + return arr;
  133 +
  134 + }
  135 +
  136 + // xml方式上传是,处理转成txt格式的方法
  137 + var getXmlSection = function (xml) {
  138 + // var xml = $("#xmlText").val();
  139 + var stationPointList = getXmlNode(xml);
  140 + var sListSize = stationPointList.length;
  141 + var sectionPointListStr = stationPointList[stationPointList.length - 1];
  142 + var sectionPointList = sectionPointListStr.split(" ");
  143 + var index = 0;
  144 +
  145 + // var sectionStr = "";
  146 + var sections = [];
  147 + for (var i = 0; i < sectionPointList.length; i++) {
  148 + var pointStr = sectionPointList[i],
  149 + point = pointStr.split(",");
  150 +
  151 + if (index < sListSize - 1 && point == stationPointList[index]) {
  152 + sections.push(point[0] + " " + point[1] + " " + point[2] + " Stop");
  153 + index++;
  154 + } else {
  155 + sections.push(point[0] + " " + point[1] + " " + point[2]);
  156 + }
  157 + }
  158 + return sections;
  159 + };
  160 +
  161 +
  162 + // 表单验证
99 form.validate({ 163 form.validate({
100 164
101 errorElement : 'span', 165 errorElement : 'span',
@@ -151,6 +215,12 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m @@ -151,6 +215,12 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m
151 var dirStr = ''; 215 var dirStr = '';
152 // 路线方向 216 // 路线方向
153 var directionData = $("input[name='dirCheck']:checked").val(); 217 var directionData = $("input[name='dirCheck']:checked").val();
  218 + /**
  219 + * 添加类型0(txt)/1(xml)
  220 + * txt方式路段需要30个点取一个
  221 + * xml路段取所有点
  222 + */
  223 + var type = $("input[name='typeCheck']:checked").val();
154 editRoute.setLineDir(directionData); 224 editRoute.setLineDir(directionData);
155 // 设置线路对象生成方式 225 // 设置线路对象生成方式
156 editRoute.setLineGenerationType('uploadGPS'); 226 editRoute.setLineGenerationType('uploadGPS');
@@ -158,16 +228,22 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m @@ -158,16 +228,22 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m
158 var i = layer.load(2); 228 var i = layer.load(2);
159 // 表单序列化 229 // 表单序列化
160 var paramsForm = form.serializeJSON(); 230 var paramsForm = form.serializeJSON();
161 - // 切割坐标点  
162 - var array = paramsForm.points.split('\r\n'); 231 + var array = [];
  232 + if(type == 1){
  233 + array = getXmlSection(paramsForm.points);
  234 + } else {
  235 + // 切割坐标点
  236 + array = paramsForm.points.split('\r\n');
  237 + }
163 // 把坐标点转换为站点或路段 238 // 把坐标点转换为站点或路段
164 var arrayFormat = inputStationValueFormat(array); 239 var arrayFormat = inputStationValueFormat(array);
165 var stationList = arrayFormat.stationList; 240 var stationList = arrayFormat.stationList;
166 var sectionListTemp = arrayFormat.sectionList; 241 var sectionListTemp = arrayFormat.sectionList;
167 var sectionList = []; 242 var sectionList = [];
168 // 隔30个取一个点(相当于30s) 243 // 隔30个取一个点(相当于30s)
169 - for(var i = 0; i*30 < sectionListTemp.length; i++) {  
170 - sectionList[i] = sectionListTemp[i*30]; 244 + var typeNum = type == 0 ? 30:1;
  245 + for(var i = 0; i*typeNum < sectionListTemp.length; i++) {
  246 + sectionList[i] = sectionListTemp[i*typeNum];
171 } 247 }
172 sectionList[sectionList.length] = sectionListTemp[sectionListTemp.length-1]; 248 sectionList[sectionList.length] = sectionListTemp[sectionListTemp.length-1];
173 249
src/main/resources/static/pages/base/lineversions/edit.html
@@ -47,7 +47,16 @@ @@ -47,7 +47,16 @@
47 <input type="hidden" name="status" id="statusInput" /> 47 <input type="hidden" name="status" id="statusInput" />
48 <input type="hidden" name="Id" id="IdInput" /> 48 <input type="hidden" name="Id" id="IdInput" />
49 <!-- 表单分组组件 form-group END --> 49 <!-- 表单分组组件 form-group END -->
50 - 50 +
  51 + <div class="form-group">
  52 + <label class="control-label col-md-5">
  53 + <span class="required"> * </span>线路版本名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
  54 + </label>
  55 + <div class="col-md-4">
  56 + <input name="name" class="form-control" style="width:100%" id="nameInput" placeholder="请填写更换版本原因,方便排班人员操作!" />
  57 + </div>
  58 + </div>
  59 +
51 <!-- 表单分组组件 form-group START --> 60 <!-- 表单分组组件 form-group START -->
52 <div class="form-group"> 61 <div class="form-group">
53 <label class="control-label col-md-5"> 62 <label class="control-label col-md-5">
@@ -110,7 +119,7 @@ @@ -110,7 +119,7 @@
110 <div class="form-group"> 119 <div class="form-group">
111 <label class="control-label col-md-5"> 描述/说明&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label> 120 <label class="control-label col-md-5"> 描述/说明&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
112 <div class="col-md-4"> 121 <div class="col-md-4">
113 - <textarea class="form-control" rows="3" name="remark" id="remarkTextarea" placeholder="请填写更换版本原因,方便排班人员操作!"></textarea> 122 + <textarea class="form-control" rows="3" name="remark" id="remarkTextarea" ></textarea>
114 </div> 123 </div>
115 </div> 124 </div>
116 <!-- 表单分组组件 form-group END --> 125 <!-- 表单分组组件 form-group END -->
src/main/resources/static/pages/base/lineversions/js/lineversions-edit-from.js
@@ -90,6 +90,7 @@ @@ -90,6 +90,7 @@
90 $("#endDateInput").val(moment(result.endDate).format('YYYY-MM-DD HH:mm:ss')); 90 $("#endDateInput").val(moment(result.endDate).format('YYYY-MM-DD HH:mm:ss'));
91 $("#versionsInput").val(result.versions); 91 $("#versionsInput").val(result.versions);
92 $("#statusInput").val(result.status); 92 $("#statusInput").val(result.status);
  93 + $("#nameInput").val(result.name);
93 $("#remarkTextarea").val(result.remark); 94 $("#remarkTextarea").val(result.remark);
94 } 95 }
95 96
@@ -144,6 +145,7 @@ @@ -144,6 +145,7 @@
144 'line' : {required : true,maxlength: 30},// 线路名称 必填项、最大长度. 145 'line' : {required : true,maxlength: 30},// 线路名称 必填项、最大长度.
145 'startDate' : {required : true},// 启用时间 不为空. 146 'startDate' : {required : true},// 启用时间 不为空.
146 'endDate' : {required : true},// 结束时间. 147 'endDate' : {required : true},// 结束时间.
  148 + 'name' : {required : true},// 版本名称.
147 'versions' : {required : true, digits : true, maxlength: 10},// 版本号 必填项、数字、最大长度10. 149 'versions' : {required : true, digits : true, maxlength: 10},// 版本号 必填项、数字、最大长度10.
148 'status' : {required : true, digits : true, maxlength: 10},// 版本状态 必填项、数字、最大长度10. 150 'status' : {required : true, digits : true, maxlength: 10},// 版本状态 必填项、数字、最大长度10.
149 }, 151 },
src/main/resources/static/pages/forms/calc/calcDetailMonthly.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid;
  11 + text-align: center; }
  12 + .table-bordered > thead > tr > th,
  13 + .table-bordered > thead > tr > td {
  14 + border-bottom-width: 2px; }
  15 +
  16 + .table > tbody + tbody {
  17 + border-top: 1px solid; }
  18 +
  19 +
  20 + #analy_body tr> td >span{
  21 + word-break: keep-all;white-space:nowrap;
  22 + }
  23 +
  24 + #analy_body td{
  25 + min-width: 100px;
  26 + max-width: 100px;
  27 + width: 100px;
  28 + }
  29 +
  30 + #analy_body{
  31 + margin-top: 20px;
  32 + height: 650px;
  33 + width: 100%
  34 + }
  35 +
  36 +
  37 + .table_head::-webkit-scrollbar {
  38 + display:none
  39 + }
  40 +
  41 + .table_head{
  42 + min-width: 906px;
  43 + width: 100%;
  44 + overflow: hidden;
  45 + }
  46 +
  47 + .table_body{
  48 + width:101%;
  49 + height:620px;
  50 + overflow: auto;
  51 + margin-top: -20px;
  52 + }
  53 +</style>
  54 +<div class="page-head">
  55 + <div class="page-title">
  56 + <h1>路单线路明细月报表</h1>
  57 + </div>
  58 +</div>
  59 +
  60 +<!--<div class="row">-->
  61 +<div class=" row col-md-12 portlet light bordered" style="height:calc(100% - 38px)">
  62 + <div class="">
  63 + <form class="form-inline" >
  64 + <!--<div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_daily">
  65 + <span class="item-label" style="width: 80px;">&#12288;&#12288;公司: </span>
  66 + <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
  67 + </div>-->
  68 + <div style="display: inline-block; margin-left: 33px;" id="fgsdmDiv_daily">
  69 + <span class="item-label" style="width: 80px;">&#12288;分公司: </span>
  70 + <select class="form-control" name="fgsdm" id="fgsdm" style="width: 180px;"></select>
  71 + </div>
  72 + <!--<div style="display: inline-block;margin-left: 33px;">
  73 + <span class="item-label" style="width: 80px;">&#12288;&#12288;线路: </span>
  74 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  75 + </div>-->
  76 +
  77 + <div style="display: inline-block;margin-left: 33px;" class="date-picker">
  78 + <span class="item-label" style="width: 80px;">&#12288;&#12288;时间: </span>
  79 + <input class="form-control" type="text" id="startDate" style="width: 180px;" /> -
  80 + <input class="form-control" type="text" id="endDate" style="width: 180px;" />
  81 + <!--<input class="form-control" type="text" id="startDate" style="width: 180px;" value="2020-10-01"/> - -->
  82 + <!--<input class="form-control" type="text" id="endDate" style="width: 180px;" value="2020-10-10"/>-->
  83 + </div>
  84 + <div style="margin-top: 2px"></div>
  85 +
  86 + <div style="display: inline-block;margin-left: 33px;">
  87 + <span class="item-label" style="width: 80px;">统计对象: </span>
  88 + <select class="form-control" name="statisticalObj" id="statisticalObj" style="width: 180px;">
  89 + <option value="cl">车辆</option>
  90 + <option value="jsy">驾驶员</option>
  91 + <option value="cwy">乘务员</option>
  92 + <option value="xl">线路</option>
  93 + </select>
  94 + </div>
  95 +
  96 + <div style="display: inline-block; margin-left: 33px;" >
  97 + <span class="item-label" style="width: 80px;">统计项目: </span>
  98 + <select class="form-control" name="statisticalItem" id="statisticalItem" style="width: 180px;">
  99 + <option value="yh">油耗</option>
  100 + <option value="dh">电耗</option>
  101 + <option value="gl">公里</option>
  102 + <option value="bc">班次</option>
  103 + </select>
  104 + </div>
  105 + <div style="display: inline-block; margin-left: 33px;" >
  106 + <span class="item-label" style="width: 80px;">项目明细: </span>
  107 + <select class="form-control" name="itemDetails" id="itemDetails" style="width: 180px;"></select>
  108 + </div>
  109 + <div class="form-group" style="display: inline-block;margin-left: 62px;">
  110 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  111 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  112 + </div>
  113 + </form>
  114 + </div>
  115 +
  116 + <div id="analy_body">
  117 + <div class="table_head" id="table_head">
  118 + <table class="table table-bordered table-hover table-checkable " id="forms_head">
  119 + <thead>
  120 + </thead>
  121 + </table>
  122 + </div>
  123 + <div class="table_body" id="table_body">
  124 + <table class="table table-bordered table-hover table-checkable" id="forms_body">
  125 + <tbody>
  126 + </tbody>
  127 + </table>
  128 + </div>
  129 + </div>
  130 +</div>
  131 +<script >
  132 + $(function(){
  133 + $('#export').attr('disabled', "true");
  134 + // 关闭左侧栏
  135 + if (!$('body').hasClass('page-sidebar-closed'))
  136 + $('.menu-toggler.sidebar-toggler').click();
  137 +
  138 + var table_body1 = document.getElementById("table_body");
  139 + table_body1.onscroll = function(){
  140 + var table_body1_left = this.scrollLeft;
  141 + document.getElementById("table_head").scrollLeft = table_body1_left;
  142 + };
  143 +
  144 + var d = new Date();
  145 + var year = d.getFullYear();
  146 + var month = d.getMonth() + 1;
  147 + var day = d.getDate()-1;//只能查一天以前的数据
  148 + if(month < 10)
  149 + month = "0" + month;
  150 + if(day < 10)
  151 + day = "0" + day;
  152 + //时间
  153 + var dateTime=year + "-" + month + "-" + day;
  154 + $("#startDate").val(dateTime);
  155 + $("#endDate").val(dateTime);
  156 +
  157 + $("#endDate").datetimepicker({
  158 + format : 'YYYY-MM-DD',
  159 + locale : 'zh-cn',
  160 + maxDate : dateTime
  161 + });
  162 + $("#startDate").datetimepicker({
  163 + format : 'YYYY-MM-DD',
  164 + locale : 'zh-cn',
  165 + maxDate : dateTime
  166 + });
  167 +
  168 + var lineAll="";
  169 + var datas = {}; //查询条件
  170 +
  171 + /**用户分配的线路*/
  172 + $.get('/realControAuthority/findByCurrentUser', function (userAuthor) {
  173 + lineAll = userAuthor.lineCodeStr.substring(0,userAuthor.lineCodeStr.length-1);
  174 + });
  175 +
  176 + var tempData = {};
  177 +
  178 + $.get('/user/companyData', function(obj) {
  179 + var option = '';
  180 + var allC = "";
  181 + for (var i = 0; i < obj.length; i++) {
  182 + if (obj[i].companyCode == "26") {
  183 + var children = obj[i].children;
  184 + for (var j = 0; j < children.length; j++) {
  185 + allC += children[j].code+",";
  186 + option += '<option value="' + children[j].code + '">' + children[j].name + '</option>';
  187 + }
  188 + }
  189 + }
  190 +
  191 + var options = '<option value="'+allC.substring(0,allC.length-1)+'">所有分公司</option>'+option;
  192 + $('#fgsdm').html(options);
  193 + });
  194 +
  195 + // 项目明细选项列
  196 + // 触发默认选项
  197 + updateItem();
  198 + $("#statisticalItem").on("change",updateItem);
  199 + function updateItem() {
  200 + var item = $('#statisticalItem').val();
  201 + var options = '';
  202 + if(item == "yh"){
  203 + options += '<option value="jzlAll">加注量[全部]</option>' +
  204 + '<option value="jzl0">加注量[0#]</option>'+
  205 + '<option value="jzl-10">加注量[-10#]</option>'+
  206 + '<option value="yhl">油耗量</option>'+
  207 + '<option value="cccy">出场存油</option>'+
  208 + '<option value="jccy">进场存油</option>'+
  209 + '<option value="bglyh">百公里油耗</option>';
  210 + } else if(item == "gl"){
  211 + options += '<option value="zgl">总公里</option>' +
  212 + '<option value="jhgl">计划公里</option>';
  213 + /*'<option value="jclm">进场路码</option>'+
  214 + '<option value="cclm">出场路码</option>'*/
  215 + } else if(item == "bc"){
  216 + options += '<option value="sjbc">实际班次</option>' +
  217 + '<option value="jhbc">计划班次</option>';
  218 + } else if(item == "dh"){
  219 + options += '<option value="dh">耗电量</option>';
  220 + options += '<option value="cdl">充电量</option>';
  221 + options += '<option value="cccd">出场存电</option>';
  222 + options += '<option value="jccd">进场存电</option>';
  223 + options += '<option value="bgldh">百公里电耗</option>';
  224 + }
  225 + $('#itemDetails').html(options);
  226 + }
  227 +
  228 + //线路名称
  229 + var lineName = '';
  230 + $("#query").on("click",function(){
  231 + var gsdm = "26";
  232 + var fgsdm = $("#fgsdm").val();
  233 + var startDate = $("#startDate").val();
  234 + var endDate = $("#endDate").val();
  235 + var statisticalObj = $("#statisticalObj").val();
  236 + //开始和结束时间
  237 + var startTime = Date.parse(new Date(startDate));
  238 + var endTime = Date.parse(new Date(endDate));
  239 +
  240 + datas = {}; // 清空之前数据
  241 + datas.gsdm = gsdm;
  242 + datas.fgsdm = fgsdm;
  243 + datas.lineCode = lineAll;
  244 + datas.timeType = "m";
  245 + datas.startDate = startDate;
  246 + datas.endDate = endDate;
  247 + datas.statisticalObj = $("#statisticalObj").val();
  248 + datas.itemDetails = $("#itemDetails").val();
  249 + if(startDate==null || startDate =="" ||endDate==null || endDate ==""){
  250 + layer.msg('请选择时间段!');
  251 + }else if(endTime<startTime){
  252 + layer.msg('结束日期不能小于开始日期!');
  253 + }else {
  254 + if (endDate.substring(0, 7) != startDate.substring(0, 7)) {
  255 + layer.msg("请查询同月份数据!");
  256 + return;
  257 + } else {
  258 + var lodingI = layer.load(2);
  259 + $get('/calcWaybill/calcDetailMonthly', datas, function (rs) {
  260 + if (rs.length <=0) {
  261 + layer.close(lodingI);
  262 + layer.open({
  263 + title: '提示'
  264 + , content: '没有您要查询的数据,请重新选择参数!'
  265 + });
  266 + $("#export").attr('disabled',"true");
  267 + return;
  268 + }else
  269 + $("#export").removeAttr("disabled");
  270 + var htmlHead = "", htmlBody = "";
  271 + var rsLength = rs.length;
  272 + rs.forEach(function (o, i) {
  273 + var html = "<tr>"
  274 + o.forEach(function (td, j) {
  275 + var colspan;
  276 + if (i == rsLength - 1 && j == 0) {
  277 + colspan = (statisticalObj == "xl" ? "colspan='3'" : "colspan='5'");
  278 + }
  279 + html += "<td " + colspan + ">" + td + "</td>"
  280 + });
  281 + html += "</tr>"
  282 + if (i == 0) {
  283 + htmlHead = html;
  284 + } else
  285 + htmlBody += html;
  286 + });
  287 + $('#forms_head thead').html(htmlHead);
  288 + $('#forms_body tbody').html(htmlBody);
  289 + layer.close(lodingI);
  290 + });
  291 + }
  292 + }
  293 + });
  294 +
  295 + $("#export").on("click",function(){
  296 + var itemDetails = datas.itemDetails,
  297 + type = "加注量[全部]";
  298 + if(itemDetails=="jzl0"){
  299 + type = "加注量[0#]"
  300 + } else if(itemDetails=="jzl-10"){
  301 + type = "加注量[-10#]"
  302 + } else if(itemDetails=="yhl"){
  303 + type = "油耗量"
  304 + } else if(itemDetails=="cccy"){
  305 + type = "出场存油"
  306 + } else if(itemDetails=="jccy"){
  307 + type = "进场存油"
  308 + } else if(itemDetails=="bglyh"){
  309 + type = "百公里油耗"
  310 + } else if(itemDetails=="zgl"){
  311 + type = "总公里"
  312 + } else if(itemDetails=="jhgl"){
  313 + type = "计划公里"
  314 + } else if(itemDetails=="jclm"){
  315 + type = "进场路码"
  316 + } else if(itemDetails=="cclm"){
  317 + type = "出场路码"
  318 + } else if(itemDetails=="sjbc"){
  319 + type = "实际班次"
  320 + } else if(itemDetails=="jhbc"){
  321 + type = "计划班次"
  322 + } else if(itemDetails=="dh"){
  323 + type = "耗电量"
  324 + } else if(itemDetails=="cdl"){
  325 + type = "充电量"
  326 + } else if(itemDetails=="cccd"){
  327 + type = "出场存电"
  328 + } else if(itemDetails=="jccd"){
  329 + type = "进场存电"
  330 + } else if(itemDetails=="bgldh"){
  331 + type = "百公里电耗"
  332 + }
  333 + datas.name = datas.startDate+"-"+datas.endDate+"-路单线路明细月报表("+type+")";
  334 + $post("/report/calcDetailMonthlyE",datas,function(result){
  335 + window.open("/downloadFile/download?fileName="+datas.name);
  336 + });
  337 + });
  338 + });
  339 +</script>
  340 +<!--<script type="application/javascript" src="/pages/forms/calc/calcDetailMonthly.js"></script>-->
src/main/resources/static/pages/forms/calc/calcDetailYear.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid;
  11 + text-align: center; }
  12 + .table-bordered > thead > tr > th,
  13 + .table-bordered > thead > tr > td {
  14 + border-bottom-width: 2px; }
  15 +
  16 + .table > tbody + tbody {
  17 + border-top: 1px solid; }
  18 +
  19 +
  20 + #analy_body tr> td >span{
  21 + word-break: keep-all;white-space:nowrap;
  22 + }
  23 +
  24 + #analy_body td{
  25 + min-width: 100px;
  26 + max-width: 100px;
  27 + width: 100px;
  28 + }
  29 +
  30 + #analy_body{
  31 + margin-top: 20px;
  32 + height: 650px;
  33 + width: 100%
  34 + }
  35 +
  36 +
  37 + .table_head::-webkit-scrollbar {
  38 + display:none
  39 + }
  40 +
  41 + .table_head{
  42 + min-width: 906px;
  43 + width: 100%;
  44 + overflow: hidden;
  45 + }
  46 +
  47 + .table_body{
  48 + width:101%;
  49 + height:620px;
  50 + overflow: auto;
  51 + margin-top: -20px;
  52 + }
  53 +</style>
  54 +<div class="page-head">
  55 + <div class="page-title">
  56 + <h1>路单线路明细年报表</h1>
  57 + </div>
  58 +</div>
  59 +
  60 +<!--<div class="row">-->
  61 +<div class=" row col-md-12 portlet light bordered" style="height:calc(100% - 38px)">
  62 + <div class="">
  63 + <form class="form-inline" >
  64 + <!--<div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_daily">
  65 + <span class="item-label" style="width: 80px;">&#12288;&#12288;公司: </span>
  66 + <select class="form-control" name="company" id="gsdm" style="width: 180px;"></select>
  67 + </div>-->
  68 + <div style="display: inline-block; margin-left: 33px;" id="fgsdmDiv_daily">
  69 + <span class="item-label" style="width: 80px;">&#12288;分公司: </span>
  70 + <select class="form-control" name="fgsdm" id="fgsdm" style="width: 180px;"></select>
  71 + </div>
  72 + <!--<div style="display: inline-block;margin-left: 33px;">
  73 + <span class="item-label" style="width: 80px;">&#12288;&#12288;线路: </span>
  74 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  75 + </div>-->
  76 +
  77 + <div style="display: inline-block;margin-left: 33px;" class="date-picker">
  78 + <span class="item-label" style="width: 80px;">&#12288;&#12288;时间: </span>
  79 + <input class="form-control" type="text" id="startDate" style="width: 180px;" /> -
  80 + <input class="form-control" type="text" id="endDate" style="width: 180px;" />
  81 + <!--<input class="form-control" type="text" id="startDate" style="width: 180px;" value="2020-10"/> - -->
  82 + <!--<input class="form-control" type="text" id="endDate" style="width: 180px;" value="2020-10"/>-->
  83 + </div>
  84 + <div style="margin-top: 2px"></div>
  85 +
  86 + <div style="display: inline-block;margin-left: 33px;">
  87 + <span class="item-label" style="width: 80px;">统计对象: </span>
  88 + <select class="form-control" name="statisticalObj" id="statisticalObj" style="width: 180px;">
  89 + <option value="cl">车辆</option>
  90 + <option value="jsy">驾驶员</option>
  91 + <option value="cwy">乘务员</option>
  92 + <option value="xl">线路</option>
  93 + </select>
  94 + </div>
  95 +
  96 + <div style="display: inline-block; margin-left: 33px;" >
  97 + <span class="item-label" style="width: 80px;">统计项目: </span>
  98 + <select class="form-control" name="statisticalItem" id="statisticalItem" style="width: 180px;">
  99 + <option value="yh">油耗</option>
  100 + <option value="dh">电耗</option>
  101 + <option value="gl">公里</option>
  102 + <option value="bc">班次</option>
  103 + </select>
  104 + </div>
  105 + <div style="display: inline-block; margin-left: 33px;" >
  106 + <span class="item-label" style="width: 80px;">项目明细: </span>
  107 + <select class="form-control" name="itemDetails" id="itemDetails" style="width: 180px;"></select>
  108 + </div>
  109 + <div class="form-group" style="display: inline-block;margin-left: 62px;">
  110 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  111 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  112 + </div>
  113 + </form>
  114 + </div>
  115 +
  116 + <div id="analy_body">
  117 + <div class="table_head" id="table_head">
  118 + <table class="table table-bordered table-hover table-checkable " id="forms_head">
  119 + <thead>
  120 + </thead>
  121 + </table>
  122 + </div>
  123 + <div class="table_body" id="table_body">
  124 + <table class="table table-bordered table-hover table-checkable" id="forms_body">
  125 + <tbody>
  126 + </tbody>
  127 + </table>
  128 + </div>
  129 + </div>
  130 +</div>
  131 +<script >
  132 + $(function(){
  133 + $('#export').attr('disabled', "true");
  134 + // 关闭左侧栏
  135 + if (!$('body').hasClass('page-sidebar-closed'))
  136 + $('.menu-toggler.sidebar-toggler').click();
  137 +
  138 + var table_body1 = document.getElementById("table_body");
  139 + table_body1.onscroll = function(){
  140 + var table_body1_left = this.scrollLeft;
  141 + document.getElementById("table_head").scrollLeft = table_body1_left;
  142 + };
  143 +
  144 + var d = new Date();
  145 + var year = d.getFullYear();
  146 + var month = d.getMonth() + 1;
  147 + if(month < 10)
  148 + month = "0" + month;
  149 + //时间
  150 + var dateTime=year + "-" + month;
  151 + $("#startDate").val(dateTime);
  152 + $("#endDate").val(dateTime);
  153 +
  154 + $("#endDate").datetimepicker({
  155 + format : 'YYYY-MM',
  156 + locale : 'zh-cn',
  157 + maxDate : dateTime
  158 + });
  159 + $("#startDate").datetimepicker({
  160 + format : 'YYYY-MM',
  161 + locale : 'zh-cn',
  162 + maxDate : dateTime
  163 + });
  164 +
  165 +
  166 + var lineAll="";
  167 + var datas = {}; //查询条件
  168 +
  169 +
  170 + /**用户分配的线路*/
  171 + $.get('/realControAuthority/findByCurrentUser', function (userAuthor) {
  172 + lineAll = userAuthor.lineCodeStr.substring(0,userAuthor.lineCodeStr.length-1);
  173 + });
  174 +
  175 + var tempData = {};
  176 +
  177 + $.get('/user/companyData', function(obj) {
  178 + var option = '';
  179 + var allC = "";
  180 + for (var i = 0; i < obj.length; i++) {
  181 + if (obj[i].companyCode == "26") {
  182 + var children = obj[i].children;
  183 + for (var j = 0; j < children.length; j++) {
  184 + allC += children[j].code+",";
  185 + option += '<option value="' + children[j].code + '">' + children[j].name + '</option>';
  186 + }
  187 + }
  188 + }
  189 +
  190 + var options = '<option value="'+allC.substring(0,allC.length-1)+'">所有分公司</option>'+option;
  191 + $('#fgsdm').html(options);
  192 + });
  193 +
  194 + // 项目明细选项列
  195 + // 触发默认选项
  196 + updateItem();
  197 + $("#statisticalItem").on("change",updateItem);
  198 + var item ="";
  199 + function updateItem() {
  200 + item = $('#statisticalItem').val();
  201 + var options = '';
  202 + if(item == "yh"){
  203 + options += '<option value="jzlAll">加注量[全部]</option>' +
  204 + '<option value="jzl0">加注量[0#]</option>'+
  205 + '<option value="jzl-10">加注量[-10#]</option>'+
  206 + '<option value="yhl">油耗量</option>'+
  207 + '<option value="cccy">出场存油</option>'+
  208 + '<option value="jccy">进场存油</option>'+
  209 + '<option value="bglyh">百公里油耗</option>';
  210 + } else if(item == "gl"){
  211 + options += '<option value="zgl">总公里</option>' +
  212 + '<option value="jhgl">计划公里</option>';
  213 + /*'<option value="jclm">进场路码</option>'+
  214 + '<option value="cclm">出场路码</option>'*/
  215 + } else if(item == "bc"){
  216 + options += '<option value="sjbc">实际班次</option>' +
  217 + '<option value="jhbc">计划班次</option>';
  218 + } else if(item == "dh"){
  219 + options += '<option value="dh">耗电量</option>';
  220 + options += '<option value="cdl">充电量</option>';
  221 + options += '<option value="cccd">出场存电</option>';
  222 + options += '<option value="jccd">进场存电</option>';
  223 + options += '<option value="bgldh">百公里电耗</option>';
  224 + }
  225 + $('#itemDetails').html(options);
  226 + }
  227 +
  228 + //线路名称
  229 + var lineName = '';
  230 + $("#query").on("click",function(){
  231 + var gsdm = "26";
  232 + var fgsdm = $("#fgsdm").val();
  233 + var startDate = $("#startDate").val();
  234 + var endDate = $("#endDate").val();
  235 + var statisticalObj = $("#statisticalObj").val();
  236 + //开始和结束时间
  237 + var startTime = Date.parse(new Date(startDate));
  238 + var endTime = Date.parse(new Date(endDate));
  239 +
  240 + datas = {}; // 清空之前数据
  241 + datas.timeType = "y";
  242 + datas.gsdm = gsdm;
  243 + datas.fgsdm = fgsdm;
  244 + datas.lineCode = lineAll;
  245 + datas.startDate = startDate;
  246 + datas.endDate = endDate;
  247 + datas.statisticalObj = $("#statisticalObj").val();
  248 + datas.itemDetails = $("#itemDetails").val();
  249 + datas.item = item;
  250 +
  251 + if(startDate==null || startDate =="" ||endDate==null || endDate ==""){
  252 + layer.msg('请选择时间段!');
  253 + }else if(endTime<startTime){
  254 + layer.msg('结束日期不能小于开始日期!');
  255 + }else {
  256 + if (endDate.substring(0, 4) != startDate.substring(0, 4)) {
  257 + layer.msg("请查询同年份数据!");
  258 + return;
  259 + } else {
  260 + var lodingI = layer.load(2);
  261 + $get('/calcWaybill/calcDetailMonthly', datas, function (rs) {
  262 + if (rs.length <=0) {
  263 + layer.close(lodingI);
  264 + layer.open({
  265 + title: '提示'
  266 + , content: '没有您要查询的数据,请重新选择参数!'
  267 + });
  268 + $("#export").attr('disabled',"true");
  269 + return;
  270 + }else
  271 + $("#export").removeAttr("disabled");
  272 + var htmlHead = "", htmlBody = "";
  273 + var rsLength = rs.length;
  274 + rs.forEach(function (o, i) {
  275 + var html = "<tr>"
  276 + o.forEach(function (td, j) {
  277 + var colspan;
  278 + if (i == rsLength - 1 && j == 0) {
  279 + colspan = (statisticalObj == "xl" ? "colspan='3'" : "colspan='5'");
  280 + }
  281 + html += "<td " + colspan + ">" + td + "</td>"
  282 + });
  283 + html += "</tr>"
  284 + if (i == 0) {
  285 + htmlHead = html;
  286 + } else
  287 + htmlBody += html;
  288 + });
  289 + $('#forms_head thead').html(htmlHead);
  290 + $('#forms_body tbody').html(htmlBody);
  291 + layer.close(lodingI);
  292 + });
  293 + }
  294 + }
  295 + });
  296 +
  297 + $("#export").on("click",function(){
  298 + var itemDetails = datas.itemDetails,
  299 + type = "加注量[全部]";
  300 + if(itemDetails=="jzl0"){
  301 + type = "加注量[0#]"
  302 + } else if(itemDetails=="jzl-10"){
  303 + type = "加注量[-10#]"
  304 + } else if(itemDetails=="yhl"){
  305 + type = "油耗量"
  306 + } else if(itemDetails=="cccy"){
  307 + type = "出场存油"
  308 + } else if(itemDetails=="jccy"){
  309 + type = "进场存油"
  310 + } else if(itemDetails=="bglyh"){
  311 + type = "百公里油耗"
  312 + } else if(itemDetails=="zgl"){
  313 + type = "总公里"
  314 + } else if(itemDetails=="jhgl"){
  315 + type = "计划公里"
  316 + } else if(itemDetails=="jclm"){
  317 + type = "进场路码"
  318 + } else if(itemDetails=="cclm"){
  319 + type = "出场路码"
  320 + } else if(itemDetails=="sjbc"){
  321 + type = "实际班次"
  322 + } else if(itemDetails=="jhbc"){
  323 + type = "计划班次"
  324 + } else if(itemDetails=="dh"){
  325 + type = "耗电量"
  326 + } else if(itemDetails=="cdl"){
  327 + type = "充电量"
  328 + } else if(itemDetails=="cccd"){
  329 + type = "出场存电"
  330 + } else if(itemDetails=="jccd"){
  331 + type = "进场存电"
  332 + } else if(itemDetails=="bgldh"){
  333 + type = "百公里电耗"
  334 + }
  335 + datas.name = datas.startDate+"-"+datas.endDate+"-路单线路明细年报表("+type+")";
  336 + $post("/report/calcDetailMonthlyE",datas,function(result){
  337 + window.open("/downloadFile/download?fileName="+datas.name);
  338 + });
  339 + });
  340 + });
  341 +</script>
  342 +<!--<script type="application/javascript" src="/pages/forms/calc/calcDetailMonthly.js"></script>-->
src/main/resources/static/pages/forms/mould/report_register.xls
No preview for this file type
src/main/resources/static/pages/forms/mould/scheduleAnaly.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleAnaly.html
@@ -79,6 +79,7 @@ @@ -79,6 +79,7 @@
79 <th width="8%">分公司</th> 79 <th width="8%">分公司</th>
80 <th width="8%">线路</th> 80 <th width="8%">线路</th>
81 <th width="8%">起点站名</th> 81 <th width="8%">起点站名</th>
  82 + <th width="6%">路牌</th>
82 <th width="6%">计发时间</th> 83 <th width="6%">计发时间</th>
83 <th width="6%">计划运送时间(分)</th> 84 <th width="6%">计划运送时间(分)</th>
84 <th width="6%">计划完成次数</th> 85 <th width="6%">计划完成次数</th>
@@ -424,6 +425,7 @@ @@ -424,6 +425,7 @@
424 <td>{{obj.subCompany}}</td> 425 <td>{{obj.subCompany}}</td>
425 <td>{{obj.line}}</td> 426 <td>{{obj.line}}</td>
426 <td>{{obj.qdz}}</td> 427 <td>{{obj.qdz}}</td>
  428 + <td>{{obj.lp}}</td>
427 <td>{{obj.jhfc}}</td> 429 <td>{{obj.jhfc}}</td>
428 <td>{{obj.bcsj}}</td> 430 <td>{{obj.bcsj}}</td>
429 <td>{{obj.jhbc}}</td> 431 <td>{{obj.jhbc}}</td>
@@ -438,7 +440,7 @@ @@ -438,7 +440,7 @@
438 {{/each}} 440 {{/each}}
439 {{if list.length == 0}} 441 {{if list.length == 0}}
440 <tr> 442 <tr>
441 - <td colspan="14"><h6 class="muted">没有找到相关数据</h6></td> 443 + <td colspan="15"><h6 class="muted">没有找到相关数据</h6></td>
442 </tr> 444 </tr>
443 {{/if}} 445 {{/if}}
444 </script> 446 </script>
445 \ No newline at end of file 447 \ No newline at end of file
src/main/resources/static/pages/forms/statement/statisticsDailyCalc2.html
1 -<style type="text/css"> 1 +<style type="text/css">
2 .table-bordered { 2 .table-bordered {
3 border: 1px solid; } 3 border: 1px solid; }
4 .table-bordered > thead > tr > th, 4 .table-bordered > thead > tr > th,
src/main/resources/static/pages/permission/user/changePWD.html
@@ -55,10 +55,10 @@ $(function(){ @@ -55,10 +55,10 @@ $(function(){
55 var error = $('.alert-danger', form); 55 var error = $('.alert-danger', form);
56 56
57 $.validator.addMethod("passwordrule", function(value, element) { 57 $.validator.addMethod("passwordrule", function(value, element) {
58 - var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*?[#?!@$%^&*-]).{8,16}$/;  
59 - //var reg = /^(?=.*[a-zA-Z])(?=.*\d).{8,16}$/; 58 + var reg = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*?[#?!@$%^&*-.]).{8,16}$/;
  59 + // var reg = /^(?=.*[a-zA-Z])(?=.*\d).{8,16}$/;
60 return this.optional(element) ||(reg.test(value)); 60 return this.optional(element) ||(reg.test(value));
61 - }, "需包含字母、数字的8-16位字符"); 61 + }, "需包含大小写字母、数字、以及特殊符号的8-16位字符");
62 62
63 //表单 validate 63 //表单 validate
64 form.validate({ 64 form.validate({
@@ -68,7 +68,7 @@ $(function(){ @@ -68,7 +68,7 @@ $(function(){
68 rules : { 68 rules : {
69 'newPWD' : { 69 'newPWD' : {
70 required : true, 70 required : true,
71 - minlength: 8, 71 + minlength: 6,
72 maxlength: 16, 72 maxlength: 16,
73 passwordrule:true 73 passwordrule:true
74 }, 74 },
@@ -96,7 +96,6 @@ $(function(){ @@ -96,7 +96,6 @@ $(function(){
96 submitHandler : function(f) { 96 submitHandler : function(f) {
97 var params = form.serializeJSON(); 97 var params = form.serializeJSON();
98 error.hide(); 98 error.hide();
99 -  
100 var keys; 99 var keys;
101 $.ajax({ 100 $.ajax({
102 url: "/user/login/jCryptionKey?t="+Math.random(), 101 url: "/user/login/jCryptionKey?t="+Math.random(),
@@ -120,6 +119,7 @@ $(function(){ @@ -120,6 +119,7 @@ $(function(){
120 data: params, 119 data: params,
121 success: function(msg){ 120 success: function(msg){
122 layer.alert(msg); 121 layer.alert(msg);
  122 + layer.closeAll('page');
123 } 123 }
124 }); 124 });
125 } 125 }
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/add.html
@@ -40,9 +40,10 @@ @@ -40,9 +40,10 @@
40 <option value="1">首末班误点</option> 40 <option value="1">首末班误点</option>
41 <option value="2">大间隔</option> 41 <option value="2">大间隔</option>
42 <option value="3">突发事件</option> 42 <option value="3">突发事件</option>
43 - <option value="4">事故</option> 43 + <option value="7">绕改道</option>
  44 +<!-- <option value="4">事故</option> -->
44 <option value="5">其他</option> 45 <option value="5">其他</option>
45 - <option value="6">咨询</option> 46 +<!-- <option value="6">咨询</option> -->
46 </select> 47 </select>
47 </div> 48 </div>
48 </div> 49 </div>
@@ -88,25 +89,7 @@ @@ -88,25 +89,7 @@
88 首末班延误原因: 89 首末班延误原因:
89 </label> 90 </label>
90 <div class="uk-form-controls"> 91 <div class="uk-form-controls">
91 - <input type="text" class="form-control" name="REPORT_SMBWD" placeholder="首末班延误原因" required>  
92 - </div>  
93 - </div>  
94 - </div>  
95 - <div class="uk-grid uk-width-2-3 uk-container-center">  
96 - <div class="uk-form-row">  
97 - <label class="uk-form-label">  
98 - 对外上报部门:  
99 - </label>  
100 - <div class="uk-form-controls">  
101 - <input type="text" class="form-control" name="REPORT_DWSBBM" placeholder="对外上报部门" required>  
102 - </div>  
103 - </div>  
104 - </div>  
105 - <div class="uk-grid uk-width-2-3 uk-container-center">  
106 - <div class="uk-form-row">  
107 - <label class="uk-form-label">对外上报时间:</label>  
108 - <div class="uk-form-controls">  
109 - <input type="text" class="form-control" name="REPORT_DWSBSJ" placeholder="对外上报时间" required> 92 + <input type="text" class="form-control" name="REPORT_SMBWD" placeholder="首末班延误原因" required>
110 </div> 93 </div>
111 </div> 94 </div>
112 </div> 95 </div>
@@ -124,7 +107,7 @@ @@ -124,7 +107,7 @@
124 路段: 107 路段:
125 </label> 108 </label>
126 <div class="uk-form-controls"> 109 <div class="uk-form-controls">
127 - <input type="text" class="form-control" name="REPORT_ROAD" placeholder="路段" required> 110 + <input type="text" class="form-control" name="REPORT_ROAD" placeholder="路段" >
128 </div> 111 </div>
129 </div> 112 </div>
130 </div> 113 </div>
@@ -134,7 +117,7 @@ @@ -134,7 +117,7 @@
134 行驶方向: 117 行驶方向:
135 </label> 118 </label>
136 <div class="uk-form-controls"> 119 <div class="uk-form-controls">
137 - <input type="text" class="form-control" name="REPORT_XSFX" placeholder="行驶方向" required> 120 + <input type="text" class="form-control" name="REPORT_XSFX" placeholder="行驶方向" >
138 </div> 121 </div>
139 </div> 122 </div>
140 </div> 123 </div>
@@ -144,7 +127,7 @@ @@ -144,7 +127,7 @@
144 站点: 127 站点:
145 </label> 128 </label>
146 <div class="uk-form-controls"> 129 <div class="uk-form-controls">
147 - <input type="text" class="form-control" name="REPORT_STATION" placeholder="站点" required > 130 + <input type="text" class="form-control" name="REPORT_STATION" placeholder="站点" >
148 </div> 131 </div>
149 </div> 132 </div>
150 </div> 133 </div>
@@ -168,24 +151,6 @@ @@ -168,24 +151,6 @@
168 </div> 151 </div>
169 </div> 152 </div>
170 </div> 153 </div>
171 - <div class="uk-grid uk-width-2-3 uk-container-center">  
172 - <div class="uk-form-row">  
173 - <label class="uk-form-label">  
174 - 对外上报部门:  
175 - </label>  
176 - <div class="uk-form-controls">  
177 - <input type="text" class="form-control" name="REPORT_DWSBBM" placeholder="对外上报部门" required>  
178 - </div>  
179 - </div>  
180 - </div>  
181 - <div class="uk-grid uk-width-2-3 uk-container-center">  
182 - <div class="uk-form-row">  
183 - <label class="uk-form-label">对外上报时间:</label>  
184 - <div class="uk-form-controls">  
185 - <input type="text" class="form-control" name="REPORT_DWSBSJ" placeholder="对外上报时间" required>  
186 - </div>  
187 - </div>  
188 - </div>  
189 <div class="uk-modal-footer uk-text-right"> 154 <div class="uk-modal-footer uk-text-right">
190 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span> 155 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
191 <button type="button" class="uk-button uk-modal-close">取消</button> 156 <button type="button" class="uk-button uk-modal-close">取消</button>
@@ -211,7 +176,7 @@ @@ -211,7 +176,7 @@
211 影响时间: 176 影响时间:
212 </label> 177 </label>
213 <div class="uk-form-controls"> 178 <div class="uk-form-controls">
214 - <input type="text" class="form-control" name="REPORT_YXSJ" placeholder="影响时间" required> 179 + <input type="text" class="form-control" name="REPORT_YXSJ" placeholder="影响时间" >
215 </div> 180 </div>
216 </div> 181 </div>
217 </div> 182 </div>
@@ -221,7 +186,7 @@ @@ -221,7 +186,7 @@
221 影响班次数: 186 影响班次数:
222 </label> 187 </label>
223 <div class="uk-form-controls"> 188 <div class="uk-form-controls">
224 - <input type="text" class="form-control" name="REPORT_YXBC" placeholder="影响班次数" required> 189 + <input type="text" class="form-control" name="REPORT_YXBC" placeholder="影响班次数" >
225 </div> 190 </div>
226 </div> 191 </div>
227 </div> 192 </div>
@@ -231,25 +196,7 @@ @@ -231,25 +196,7 @@
231 调整措施: 196 调整措施:
232 </label> 197 </label>
233 <div class="uk-form-controls"> 198 <div class="uk-form-controls">
234 - <input type="text" class="form-control" name="REPORT_TZCS" placeholder="调整措施" required>  
235 - </div>  
236 - </div>  
237 - </div>  
238 - <div class="uk-grid uk-width-2-3 uk-container-center">  
239 - <div class="uk-form-row">  
240 - <label class="uk-form-label">  
241 - 对外上报部门:  
242 - </label>  
243 - <div class="uk-form-controls">  
244 - <input type="text" class="form-control" name="REPORT_DWSBBM" placeholder="对外上报部门" required>  
245 - </div>  
246 - </div>  
247 - </div>  
248 - <div class="uk-grid uk-width-2-3 uk-container-center">  
249 - <div class="uk-form-row">  
250 - <label class="uk-form-label">对外上报时间:</label>  
251 - <div class="uk-form-controls">  
252 - <input type="text" class="form-control" name="REPORT_DWSBSJ" placeholder="对外上报时间" required> 199 + <input type="text" class="form-control" name="REPORT_TZCS" placeholder="调整措施" >
253 </div> 200 </div>
254 </div> 201 </div>
255 </div> 202 </div>
@@ -395,6 +342,54 @@ @@ -395,6 +342,54 @@
395 <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button> 342 <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button>
396 </div> 343 </div>
397 </form> 344 </form>
  345 + <!-- 绕改道-->
  346 + <form id="add_detour_table" class="c_register_form" style="display:none; margin-top: 35px;">
  347 + <div class="uk-grid uk-width-2-3 uk-container-center">
  348 + <div class="uk-form-row">
  349 + <label class="uk-form-label">
  350 + 路段:
  351 + </label>
  352 + <div class="uk-form-controls">
  353 + <input type="text" class="form-control" name="REPORT_ROAD" placeholder="路段" >
  354 + </div>
  355 + </div>
  356 + </div>
  357 + <div class="uk-grid uk-width-2-3 uk-container-center">
  358 + <div class="uk-form-row">
  359 + <label class="uk-form-label">
  360 + 行驶方向:
  361 + </label>
  362 + <div class="uk-form-controls">
  363 + <input type="text" class="form-control" name="REPORT_XSFX" placeholder="行驶方向" >
  364 + </div>
  365 + </div>
  366 + </div>
  367 + <div class="uk-grid uk-width-2-3 uk-container-center">
  368 + <div class="uk-form-row">
  369 + <label class="uk-form-label">
  370 + 跳站:
  371 + </label>
  372 + <div class="uk-form-controls">
  373 + <input type="text" class="form-control" name="REPORT_SGGK" placeholder="跳站" >
  374 + </div>
  375 + </div>
  376 + </div>
  377 + <div class="uk-grid uk-width-2-3 uk-container-center">
  378 + <div class="uk-form-row">
  379 + <label class="uk-form-label">
  380 + 原因:
  381 + </label>
  382 + <div class="uk-form-controls">
  383 + <textarea type="text" class="form-control" name="REPORT_BZ" placeholder="原因" required></textarea>
  384 + </div>
  385 + </div>
  386 + </div>
  387 + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">
  388 + <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
  389 + <button type="button" class="uk-button uk-modal-close">取消</button>
  390 + <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button>
  391 + </div>
  392 + </form>
398 <!-- 其他--> 393 <!-- 其他-->
399 <form id="add_rests_table" class="c_register_form" style="display:none; margin-top: 35px;"> 394 <form id="add_rests_table" class="c_register_form" style="display:none; margin-top: 35px;">
400 395
@@ -404,7 +399,7 @@ @@ -404,7 +399,7 @@
404 报备内容: 399 报备内容:
405 </label> 400 </label>
406 <div class="uk-form-controls"> 401 <div class="uk-form-controls">
407 - <input type="text" class="form-control" name="REPORT_BZ" placeholder="报备内容" required> 402 + <textarea type="text" class="form-control" name="REPORT_BZ" placeholder="报备内容" required></textarea>
408 </div> 403 </div>
409 </div> 404 </div>
410 </div> 405 </div>
@@ -494,6 +489,8 @@ @@ -494,6 +489,8 @@
494 typeInt = 5; 489 typeInt = 5;
495 } else if (tableActive == 'add_consult_table') { 490 } else if (tableActive == 'add_consult_table') {
496 typeInt = 6; 491 typeInt = 6;
  492 + } else if (tableActive == 'add_detour_table') {
  493 + typeInt = 7;
497 } else { 494 } else {
498 UIkit.modal(modal).hide(); 495 UIkit.modal(modal).hide();
499 notify_err('您所选的数据有问题,请重新选择!'); 496 notify_err('您所选的数据有问题,请重新选择!');
@@ -553,6 +550,8 @@ @@ -553,6 +550,8 @@
553 tableActive = 'add_rests_table'; 550 tableActive = 'add_rests_table';
554 } else if (REPORT_TYPE == 6) { 551 } else if (REPORT_TYPE == 6) {
555 tableActive = 'add_consult_table'; 552 tableActive = 'add_consult_table';
  553 + } else if (REPORT_TYPE == 7) {
  554 + tableActive = 'add_detour_table';
556 } 555 }
557 document.getElementById(tableActive).style.display = ""; 556 document.getElementById(tableActive).style.display = "";
558 changeType(tableActive); 557 changeType(tableActive);
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/list.html
@@ -33,9 +33,10 @@ @@ -33,9 +33,10 @@
33 <li id="first_last_late" class="uk-active"><a>首末班误点</a></li> 33 <li id="first_last_late" class="uk-active"><a>首末班误点</a></li>
34 <li id="large_interval"><a>大间隔</a></li> 34 <li id="large_interval"><a>大间隔</a></li>
35 <li id="emergency"><a>突发事件</a></li> 35 <li id="emergency"><a>突发事件</a></li>
36 - <li id="accident"><a>事故</a></li> 36 + <li id="detour"><a>绕改道</a></li>
  37 +<!-- <li id="accident"><a>事故</a></li> -->
37 <li id="rests"><a>其他</a></li> 38 <li id="rests"><a>其他</a></li>
38 - <li id="consult"><a>咨询</a></li> 39 +<!-- <li id="consult"><a>咨询</a></li> -->
39 </ul> 40 </ul>
40 </div> 41 </div>
41 42
@@ -68,8 +69,6 @@ @@ -68,8 +69,6 @@
68 <th width="7%">延误站点</th> 69 <th width="7%">延误站点</th>
69 <th width="5%">延误时间</th> 70 <th width="5%">延误时间</th>
70 <th width="10%">首末班延误原因</th> 71 <th width="10%">首末班延误原因</th>
71 - <th width="7%">对外上报部门</th>  
72 - <th width="7%">对外上报时间</th>  
73 </tr> 72 </tr>
74 </thead> 73 </thead>
75 <tbody class="table_body"> 74 <tbody class="table_body">
@@ -90,8 +89,6 @@ @@ -90,8 +89,6 @@
90 <th width="7%">站点</th> 89 <th width="7%">站点</th>
91 <th width="7%">大间隔时间</th> 90 <th width="7%">大间隔时间</th>
92 <th width="7%">大间隔原因</th> 91 <th width="7%">大间隔原因</th>
93 - <th width="7%">对外上报部门</th>  
94 - <th width="7%">对外上报时间</th>  
95 </tr> 92 </tr>
96 </thead> 93 </thead>
97 <tbody class="table_body"> 94 <tbody class="table_body">
@@ -111,8 +108,6 @@ @@ -111,8 +108,6 @@
111 <th width="7%">影响时间</th> 108 <th width="7%">影响时间</th>
112 <th width="7%">影响班次数</th> 109 <th width="7%">影响班次数</th>
113 <th width="7%">调整措施</th> 110 <th width="7%">调整措施</th>
114 - <th width="7%">对外上报部门</th>  
115 - <th width="7%">对外上报时间</th>  
116 </tr> 111 </tr>
117 </thead> 112 </thead>
118 <tbody class="table_body"> 113 <tbody class="table_body">
@@ -146,6 +141,25 @@ @@ -146,6 +141,25 @@
146 <tbody class="table_body"> 141 <tbody class="table_body">
147 </tbody> 142 </tbody>
148 </table> 143 </table>
  144 + <!-- 绕改道-->
  145 + <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="detour_table">
  146 + <thead class="">
  147 + <tr role="row">
  148 + <th width="2%">序号</th>
  149 + <th width="5%">报备时间</th>
  150 + <th width="5%">报备人</th>
  151 + <th width="5%">公司</th>
  152 + <th width="5%">分公司</th>
  153 + <th width="5%">线路</th>
  154 + <th width="5%">路段</th>
  155 + <th width="5%">行驶方向</th>
  156 + <th width="5%">跳站</th>
  157 + <th width="7%">原因</th>
  158 + </tr>
  159 + </thead>
  160 + <tbody class="table_body">
  161 + </tbody>
  162 + </table>
149 <!-- 其他--> 163 <!-- 其他-->
150 <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="rests_table"> 164 <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="rests_table">
151 <tr role="row"> 165 <tr role="row">
@@ -202,8 +216,6 @@ @@ -202,8 +216,6 @@
202 <td style="vertical-align: middle;">{{obj.report_STATION}}</td> 216 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
203 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td> 217 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td>
204 <td style="vertical-align: middle;">{{obj.report_SMBWD}}</td> 218 <td style="vertical-align: middle;">{{obj.report_SMBWD}}</td>
205 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
206 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
207 </tr> 219 </tr>
208 {{/each}} 220 {{/each}}
209 </script> 221 </script>
@@ -225,8 +237,6 @@ @@ -225,8 +237,6 @@
225 <td style="vertical-align: middle;">{{obj.report_STATION}}</td> 237 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
226 <td style="vertical-align: middle;">{{obj.report_DJGSNAMEJ}}</td> 238 <td style="vertical-align: middle;">{{obj.report_DJGSNAMEJ}}</td>
227 <td style="vertical-align: middle;">{{obj.report_DJGYY}}</td> 239 <td style="vertical-align: middle;">{{obj.report_DJGYY}}</td>
228 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
229 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
230 </tr> 240 </tr>
231 {{/each}} 241 {{/each}}
232 </script> 242 </script>
@@ -247,8 +257,6 @@ @@ -247,8 +257,6 @@
247 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td> 257 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td>
248 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td> 258 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td>
249 <td style="vertical-align: middle;">{{obj.report_TZCS}}</td> 259 <td style="vertical-align: middle;">{{obj.report_TZCS}}</td>
250 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
251 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
252 </tr> 260 </tr>
253 {{/each}} 261 {{/each}}
254 </script> 262 </script>
@@ -281,6 +289,26 @@ @@ -281,6 +289,26 @@
281 </tr> 289 </tr>
282 {{/each}} 290 {{/each}}
283 </script> 291 </script>
  292 + <script id="detour_table_body_list" type="text/html">
  293 + {{each data.list as obj i}}
  294 + {{if obj.status == 2}}
  295 + <tr style="background-color: #ff5f78">
  296 + {{else}}
  297 + <tr>
  298 + {{/if}}
  299 + <td style="vertical-align: middle;">{{i + 1}}</td>
  300 + <td style="vertical-align: middle;">{{obj.report_DATE}}</td>
  301 + <td style="vertical-align: middle;">{{obj.report_BBR}}</td>
  302 + <td style="vertical-align: middle;">{{obj.report_GSNAME}}</td>
  303 + <td style="vertical-align: middle;">{{obj.report_FGSNAME}}</td>
  304 + <td style="vertical-align: middle;">{{obj.report_XLNAME}}</td>
  305 + <td style="vertical-align: middle;">{{obj.report_ROAD}}</td>
  306 + <td style="vertical-align: middle;">{{obj.report_XSFX}}</td>
  307 + <td style="vertical-align: middle;">{{obj.report_SGGK}}</td>
  308 + <td style="vertical-align: middle;">{{obj.report_BZ}}</td>
  309 + </tr>
  310 + {{/each}}
  311 + </script>
284 <script id="rests_table_body_list" type="text/html"> 312 <script id="rests_table_body_list" type="text/html">
285 {{each data.list as obj i}} 313 {{each data.list as obj i}}
286 {{if obj.status == 2}} 314 {{if obj.status == 2}}
@@ -410,7 +438,7 @@ @@ -410,7 +438,7 @@
410 if (data.status == "SUCCESS") { 438 if (data.status == "SUCCESS") {
411 var list = data.list; 439 var list = data.list;
412 var tableList1 = [], tableList2 = [], tableList3 = [], tableList4 = [], tableList5 = [], 440 var tableList1 = [], tableList2 = [], tableList3 = [], tableList4 = [], tableList5 = [],
413 - tableList6 = []; 441 + tableList6 = [], tableList7 = [];
414 $.each(list, function (i, rr) { 442 $.each(list, function (i, rr) {
415 rr.report_DATE = formatDate(new Date(rr.report_DATE)); 443 rr.report_DATE = formatDate(new Date(rr.report_DATE));
416 if (rr.report_TYPE == 1) { 444 if (rr.report_TYPE == 1) {
@@ -425,6 +453,8 @@ @@ -425,6 +453,8 @@
425 tableList5.push(rr); 453 tableList5.push(rr);
426 } else if (rr.report_TYPE == 6) { 454 } else if (rr.report_TYPE == 6) {
427 tableList6.push(rr); 455 tableList6.push(rr);
  456 + } else if (rr.report_TYPE == 7) {
  457 + tableList7.push(rr);
428 } 458 }
429 }); 459 });
430 var htmlStr = template('first_last_late_table_body_list', {'data':{'list': tableList1,'line':lineList}}); 460 var htmlStr = template('first_last_late_table_body_list', {'data':{'list': tableList1,'line':lineList}});
@@ -435,6 +465,8 @@ @@ -435,6 +465,8 @@
435 $('#emergency_table .table_body', modal).html(htmlStr); 465 $('#emergency_table .table_body', modal).html(htmlStr);
436 htmlStr = template('accident_table_body_list', {'data':{'list': tableList4,'line':lineList}}); 466 htmlStr = template('accident_table_body_list', {'data':{'list': tableList4,'line':lineList}});
437 $('#accident_table .table_body', modal).html(htmlStr); 467 $('#accident_table .table_body', modal).html(htmlStr);
  468 + htmlStr = template('detour_table_body_list', {'data':{'list': tableList7,'line':lineList}});
  469 + $('#detour_table .table_body', modal).html(htmlStr);
438 htmlStr = template('rests_table_body_list', {'data':{'list': tableList5,'line':lineList}}); 470 htmlStr = template('rests_table_body_list', {'data':{'list': tableList5,'line':lineList}});
439 $('#rests_table .table_body', modal).html(htmlStr); 471 $('#rests_table .table_body', modal).html(htmlStr);
440 htmlStr = template('consult_table_body_list', {'data':{'list': tableList6,'line':lineList}}); 472 htmlStr = template('consult_table_body_list', {'data':{'list': tableList6,'line':lineList}});
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/list2.html
@@ -43,9 +43,9 @@ @@ -43,9 +43,9 @@
43 <option value="1">首末班误点</option> 43 <option value="1">首末班误点</option>
44 <option value="2">大间隔</option> 44 <option value="2">大间隔</option>
45 <option value="3">突发事件</option> 45 <option value="3">突发事件</option>
46 - <option value="4">事故</option> 46 +<!-- <option value="4">事故</option> -->
47 <option value="5">其他</option> 47 <option value="5">其他</option>
48 - <option value="6">咨询</option> 48 +<!-- <option value="6">咨询</option> -->
49 </select> 49 </select>
50 </div> 50 </div>
51 <div class="form-group"> 51 <div class="form-group">
@@ -190,8 +190,6 @@ @@ -190,8 +190,6 @@
190 <th width="7%">延误站点</th> 190 <th width="7%">延误站点</th>
191 <th width="5%">延误时间</th> 191 <th width="5%">延误时间</th>
192 <th width="10%">首末班延误原因</th> 192 <th width="10%">首末班延误原因</th>
193 - <th width="7%">对外上报部门</th>  
194 - <th width="7%">对外上报时间</th>  
195 </tr> 193 </tr>
196 </thead> 194 </thead>
197 <tbody> 195 <tbody>
@@ -206,8 +204,6 @@ @@ -206,8 +204,6 @@
206 <td style="vertical-align: middle;">{{obj.report_STATION}}</td> 204 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
207 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td> 205 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td>
208 <td style="vertical-align: middle;">{{obj.report_SMBWD}}</td> 206 <td style="vertical-align: middle;">{{obj.report_SMBWD}}</td>
209 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
210 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
211 </tr> 207 </tr>
212 {{/each}} 208 {{/each}}
213 {{if list.length == 0}} 209 {{if list.length == 0}}
@@ -228,8 +224,6 @@ @@ -228,8 +224,6 @@
228 <th width="7%">站点</th> 224 <th width="7%">站点</th>
229 <th width="7%">大间隔时间</th> 225 <th width="7%">大间隔时间</th>
230 <th width="7%">大间隔原因</th> 226 <th width="7%">大间隔原因</th>
231 - <th width="7%">对外上报部门</th>  
232 - <th width="7%">对外上报时间</th>  
233 </tr> 227 </tr>
234 </thead> 228 </thead>
235 <tbody> 229 <tbody>
@@ -246,8 +240,6 @@ @@ -246,8 +240,6 @@
246 <td style="vertical-align: middle;">{{obj.report_STATION}}</td> 240 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
247 <td style="vertical-align: middle;">{{obj.report_DJGSJ}}</td> 241 <td style="vertical-align: middle;">{{obj.report_DJGSJ}}</td>
248 <td style="vertical-align: middle;">{{obj.report_DJGYY}}</td> 242 <td style="vertical-align: middle;">{{obj.report_DJGYY}}</td>
249 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
250 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
251 </tr> 243 </tr>
252 {{/each}} 244 {{/each}}
253 {{if list.length == 0}} 245 {{if list.length == 0}}
@@ -267,8 +259,6 @@ @@ -267,8 +259,6 @@
267 <th width="7%">影响时间</th> 259 <th width="7%">影响时间</th>
268 <th width="7%">影响班次数</th> 260 <th width="7%">影响班次数</th>
269 <th width="7%">调整措施</th> 261 <th width="7%">调整措施</th>
270 - <th width="7%">对外上报部门</th>  
271 - <th width="7%">对外上报时间</th>  
272 </tr> 262 </tr>
273 </thead> 263 </thead>
274 <tbody> 264 <tbody>
@@ -284,8 +274,6 @@ @@ -284,8 +274,6 @@
284 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td> 274 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td>
285 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td> 275 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td>
286 <td style="vertical-align: middle;">{{obj.report_TZCS}}</td> 276 <td style="vertical-align: middle;">{{obj.report_TZCS}}</td>
287 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
288 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
289 </tr> 277 </tr>
290 {{/each}} 278 {{/each}}
291 {{if list.length == 0}} 279 {{if list.length == 0}}
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/manage.html
@@ -36,9 +36,10 @@ @@ -36,9 +36,10 @@
36 <li id="first_last_late" class="uk-active"><a>首末班误点</a></li> 36 <li id="first_last_late" class="uk-active"><a>首末班误点</a></li>
37 <li id="large_interval"><a>大间隔</a></li> 37 <li id="large_interval"><a>大间隔</a></li>
38 <li id="emergency"><a>突发事件</a></li> 38 <li id="emergency"><a>突发事件</a></li>
39 - <li id="accident"><a>事故</a></li> 39 + <li id="detour"><a>绕改道</a></li>
  40 +<!-- <li id="accident"><a>事故</a></li> -->
40 <li id="rests"><a>其他</a></li> 41 <li id="rests"><a>其他</a></li>
41 - <li id="consult"><a>咨询</a></li> 42 +<!-- <li id="consult"><a>咨询</a></li> -->
42 </ul> 43 </ul>
43 </div> 44 </div>
44 45
@@ -68,8 +69,6 @@ @@ -68,8 +69,6 @@
68 <th width="7%">延误站点</th> 69 <th width="7%">延误站点</th>
69 <th width="5%">延误时间</th> 70 <th width="5%">延误时间</th>
70 <th width="10%">首末班延误原因</th> 71 <th width="10%">首末班延误原因</th>
71 - <th width="7%">对外上报部门</th>  
72 - <th width="7%">对外上报时间</th>  
73 </tr> 72 </tr>
74 </thead> 73 </thead>
75 <tbody class="table_body"> 74 <tbody class="table_body">
@@ -89,8 +88,6 @@ @@ -89,8 +88,6 @@
89 <th width="7%">站点</th> 88 <th width="7%">站点</th>
90 <th width="7%">大间隔时间</th> 89 <th width="7%">大间隔时间</th>
91 <th width="7%">大间隔原因</th> 90 <th width="7%">大间隔原因</th>
92 - <th width="7%">对外上报部门</th>  
93 - <th width="7%">对外上报时间</th>  
94 </tr> 91 </tr>
95 </thead> 92 </thead>
96 <tbody class="table_body"> 93 <tbody class="table_body">
@@ -109,8 +106,6 @@ @@ -109,8 +106,6 @@
109 <th width="7%">影响时间</th> 106 <th width="7%">影响时间</th>
110 <th width="7%">影响班次数</th> 107 <th width="7%">影响班次数</th>
111 <th width="7%">调整措施</th> 108 <th width="7%">调整措施</th>
112 - <th width="7%">对外上报部门</th>  
113 - <th width="7%">对外上报时间</th>  
114 </tr> 109 </tr>
115 </thead> 110 </thead>
116 <tbody class="table_body"> 111 <tbody class="table_body">
@@ -143,6 +138,24 @@ @@ -143,6 +138,24 @@
143 <tbody class="table_body"> 138 <tbody class="table_body">
144 </tbody> 139 </tbody>
145 </table> 140 </table>
  141 + <!-- 绕改道-->
  142 + <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="detour_table">
  143 + <thead class="">
  144 + <tr role="row">
  145 + <!--<th width="2%"><input type="radio" name="checkItems"></th>-->
  146 + <th width="2%">#</th>
  147 + <th width="2%">序号</th>
  148 + <th width="5%">报备时间</th>
  149 + <th width="5%">线路</th>
  150 + <th width="5%">路段</th>
  151 + <th width="5%">行驶方向</th>
  152 + <th width="5%">跳站</th>
  153 + <th width="7%">原因</th>
  154 + </tr>
  155 + </thead>
  156 + <tbody class="table_body">
  157 + </tbody>
  158 + </table>
146 <!-- 其他--> 159 <!-- 其他-->
147 <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="rests_table"> 160 <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="rests_table">
148 <thead class=""> 161 <thead class="">
@@ -204,8 +217,6 @@ @@ -204,8 +217,6 @@
204 <td style="vertical-align: middle;">{{obj.report_STATION}}</td> 217 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
205 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td> 218 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td>
206 <td style="vertical-align: middle;">{{obj.report_SMBWD}}</td> 219 <td style="vertical-align: middle;">{{obj.report_SMBWD}}</td>
207 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
208 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
209 </tr> 220 </tr>
210 {{/each}} 221 {{/each}}
211 </script> 222 </script>
@@ -233,8 +244,6 @@ @@ -233,8 +244,6 @@
233 <td style="vertical-align: middle;">{{obj.report_STATION}}</td> 244 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
234 <td style="vertical-align: middle;">{{obj.report_DJGSJ}}</td> 245 <td style="vertical-align: middle;">{{obj.report_DJGSJ}}</td>
235 <td style="vertical-align: middle;">{{obj.report_DJGYY}}</td> 246 <td style="vertical-align: middle;">{{obj.report_DJGYY}}</td>
236 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
237 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
238 </tr> 247 </tr>
239 {{/each}} 248 {{/each}}
240 </script> 249 </script>
@@ -261,8 +270,6 @@ @@ -261,8 +270,6 @@
261 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td> 270 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td>
262 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td> 271 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td>
263 <td style="vertical-align: middle;">{{obj.report_TZCS}}</td> 272 <td style="vertical-align: middle;">{{obj.report_TZCS}}</td>
264 - <td style="vertical-align: middle;">{{obj.report_DWSBBM}}</td>  
265 - <td style="vertical-align: middle;">{{obj.report_DWSBSJ}}</td>  
266 </tr> 273 </tr>
267 {{/each}} 274 {{/each}}
268 </script> 275 </script>
@@ -301,6 +308,33 @@ @@ -301,6 +308,33 @@
301 </tr> 308 </tr>
302 {{/each}} 309 {{/each}}
303 </script> 310 </script>
  311 + <script id="detour_table_body" type="text/html">
  312 + {{each data.list as obj i}}
  313 +
  314 + {{if obj.status == 2}}
  315 + <tr style="background-color: #ff5f78">
  316 + <td style="vertical-align: middle;">
  317 + <!--<input type="radio" class="group-checkable icheck" name="idRadio" value="{{obj.id}}" data-lineCode="{{obj.report_XL}}">-->
  318 + </td>
  319 + {{else}}
  320 + <tr>
  321 + <td style="vertical-align: middle;">
  322 + <input type="radio" class="group-checkable icheck" name="idRadio" value="{{obj.id}}" data-lineCode="{{obj.report_XL}}">
  323 + </td>
  324 + {{/if}}
  325 + <td style="vertical-align: middle;">{{i + 1}}</td>
  326 + <td style="vertical-align: middle;">{{obj.report_DATE}}</td>
  327 + <td style="vertical-align: middle;display:none">{{obj.report_BBR}}</td>
  328 + <td style="vertical-align: middle;display:none">{{obj.report_GS}}</td>
  329 + <td style="vertical-align: middle;display:none">{{obj.report_FGS}}</td>
  330 + <td style="vertical-align: middle;">{{obj.report_XLNAME}}</td>
  331 + <td style="vertical-align: middle;">{{obj.report_ROAD}}</td>
  332 + <td style="vertical-align: middle;">{{obj.report_XSFX}}</td>
  333 + <td style="vertical-align: middle;">{{obj.report_SGGK}}</td>
  334 + <td style="vertical-align: middle;">{{obj.report_BZ}}</td>
  335 + </tr>
  336 + {{/each}}
  337 + </script>
304 <script id="rests_table_body" type="text/html"> 338 <script id="rests_table_body" type="text/html">
305 {{each data.list as obj i}} 339 {{each data.list as obj i}}
306 340
@@ -434,7 +468,7 @@ @@ -434,7 +468,7 @@
434 if (data.status == "SUCCESS") { 468 if (data.status == "SUCCESS") {
435 var list = data.list; 469 var list = data.list;
436 var tableList1 = [], tableList2 = [], tableList3 = [], tableList4 = [], tableList5 = [], 470 var tableList1 = [], tableList2 = [], tableList3 = [], tableList4 = [], tableList5 = [],
437 - tableList6 = []; 471 + tableList6 = [], tableList7 = [];
438 $.each(list, function (i, rr) { 472 $.each(list, function (i, rr) {
439 rr.report_DATE = formatDate(new Date(rr.report_DATE)); 473 rr.report_DATE = formatDate(new Date(rr.report_DATE));
440 if (rr.report_TYPE == 1) { 474 if (rr.report_TYPE == 1) {
@@ -449,6 +483,8 @@ @@ -449,6 +483,8 @@
449 tableList5.push(rr); 483 tableList5.push(rr);
450 } else if (rr.report_TYPE == 6) { 484 } else if (rr.report_TYPE == 6) {
451 tableList6.push(rr); 485 tableList6.push(rr);
  486 + } else if (rr.report_TYPE == 7) {
  487 + tableList7.push(rr);
452 } 488 }
453 }); 489 });
454 var htmlStr = template('first_last_late_table_body', {'data':{'list': tableList1,'line':lineList}}); 490 var htmlStr = template('first_last_late_table_body', {'data':{'list': tableList1,'line':lineList}});
@@ -459,6 +495,8 @@ @@ -459,6 +495,8 @@
459 $('#emergency_table .table_body', modal).html(htmlStr); 495 $('#emergency_table .table_body', modal).html(htmlStr);
460 htmlStr = template('accident_table_body', {'data':{'list': tableList4,'line':lineList}}); 496 htmlStr = template('accident_table_body', {'data':{'list': tableList4,'line':lineList}});
461 $('#accident_table .table_body', modal).html(htmlStr); 497 $('#accident_table .table_body', modal).html(htmlStr);
  498 + htmlStr = template('detour_table_body', {'data':{'list': tableList7,'line':lineList}});
  499 + $('#detour_table .table_body', modal).html(htmlStr);
462 htmlStr = template('rests_table_body', {'data':{'list': tableList5,'line':lineList}}); 500 htmlStr = template('rests_table_body', {'data':{'list': tableList5,'line':lineList}});
463 $('#rests_table .table_body', modal).html(htmlStr); 501 $('#rests_table .table_body', modal).html(htmlStr);
464 htmlStr = template('consult_table_body', {'data':{'list': tableList6,'line':lineList}}); 502 htmlStr = template('consult_table_body', {'data':{'list': tableList6,'line':lineList}});
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/update.html
@@ -41,9 +41,10 @@ @@ -41,9 +41,10 @@
41 <option value="1">首末班误点</option> 41 <option value="1">首末班误点</option>
42 <option value="2">大间隔</option> 42 <option value="2">大间隔</option>
43 <option value="3">突发事件</option> 43 <option value="3">突发事件</option>
44 - <option value="4">事故</option> 44 + <option value="7">绕改道</option>
  45 +<!-- <option value="4">事故</option> -->
45 <option value="5">其他</option> 46 <option value="5">其他</option>
46 - <option value="6">咨询</option> 47 +<!-- <option value="6">咨询</option> -->
47 </select> 48 </select>
48 </div> 49 </div>
49 </div> 50 </div>
@@ -93,24 +94,6 @@ @@ -93,24 +94,6 @@
93 </div> 94 </div>
94 </div> 95 </div>
95 </div> 96 </div>
96 - <div class="uk-grid uk-width-2-3 uk-container-center">  
97 - <div class="uk-form-row">  
98 - <label class="uk-form-label">  
99 - 对外上报部门:  
100 - </label>  
101 - <div class="uk-form-controls">  
102 - <input type="text" class="form-control" name="REPORT_DWSBBM" placeholder="对外上报部门" required>  
103 - </div>  
104 - </div>  
105 - </div>  
106 - <div class="uk-grid uk-width-2-3 uk-container-center">  
107 - <div class="uk-form-row">  
108 - <label class="uk-form-label">对外上报时间:</label>  
109 - <div class="uk-form-controls">  
110 - <input type="text" class="form-control" name="REPORT_DWSBSJ" placeholder="对外上报时间" required>  
111 - </div>  
112 - </div>  
113 - </div>  
114 <div class="uk-modal-footer uk-text-right"> 97 <div class="uk-modal-footer uk-text-right">
115 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span> 98 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
116 <button type="button" class="uk-button uk-modal-close">取消</button> 99 <button type="button" class="uk-button uk-modal-close">取消</button>
@@ -125,7 +108,7 @@ @@ -125,7 +108,7 @@
125 路段: 108 路段:
126 </label> 109 </label>
127 <div class="uk-form-controls"> 110 <div class="uk-form-controls">
128 - <input type="text" class="form-control" name="REPORT_ROAD" placeholder="路段" required> 111 + <input type="text" class="form-control" name="REPORT_ROAD" placeholder="路段" >
129 </div> 112 </div>
130 </div> 113 </div>
131 </div> 114 </div>
@@ -135,7 +118,7 @@ @@ -135,7 +118,7 @@
135 行驶方向: 118 行驶方向:
136 </label> 119 </label>
137 <div class="uk-form-controls"> 120 <div class="uk-form-controls">
138 - <input type="text" class="form-control" name="REPORT_XSFX" placeholder="行驶方向" required> 121 + <input type="text" class="form-control" name="REPORT_XSFX" placeholder="行驶方向" >
139 </div> 122 </div>
140 </div> 123 </div>
141 </div> 124 </div>
@@ -145,7 +128,7 @@ @@ -145,7 +128,7 @@
145 站点: 128 站点:
146 </label> 129 </label>
147 <div class="uk-form-controls"> 130 <div class="uk-form-controls">
148 - <input type="text" class="form-control" name="REPORT_STATION" placeholder="站点" required > 131 + <input type="text" class="form-control" name="REPORT_STATION" placeholder="站点" >
149 </div> 132 </div>
150 </div> 133 </div>
151 </div> 134 </div>
@@ -169,24 +152,6 @@ @@ -169,24 +152,6 @@
169 </div> 152 </div>
170 </div> 153 </div>
171 </div> 154 </div>
172 - <div class="uk-grid uk-width-2-3 uk-container-center">  
173 - <div class="uk-form-row">  
174 - <label class="uk-form-label">  
175 - 对外上报部门:  
176 - </label>  
177 - <div class="uk-form-controls">  
178 - <input type="text" class="form-control" name="REPORT_DWSBBM" placeholder="对外上报部门" required>  
179 - </div>  
180 - </div>  
181 - </div>  
182 - <div class="uk-grid uk-width-2-3 uk-container-center">  
183 - <div class="uk-form-row">  
184 - <label class="uk-form-label">对外上报时间:</label>  
185 - <div class="uk-form-controls">  
186 - <input type="text" class="form-control" name="REPORT_DWSBSJ" placeholder="对外上报时间" required>  
187 - </div>  
188 - </div>  
189 - </div>  
190 <div class="uk-modal-footer uk-text-right"> 155 <div class="uk-modal-footer uk-text-right">
191 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span> 156 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
192 <button type="button" class="uk-button uk-modal-close">取消</button> 157 <button type="button" class="uk-button uk-modal-close">取消</button>
@@ -212,7 +177,7 @@ @@ -212,7 +177,7 @@
212 影响时间: 177 影响时间:
213 </label> 178 </label>
214 <div class="uk-form-controls"> 179 <div class="uk-form-controls">
215 - <input type="text" class="form-control" name="REPORT_YXSJ" placeholder="影响时间" required> 180 + <input type="text" class="form-control" name="REPORT_YXSJ" placeholder="影响时间" >
216 </div> 181 </div>
217 </div> 182 </div>
218 </div> 183 </div>
@@ -222,7 +187,7 @@ @@ -222,7 +187,7 @@
222 影响班次数: 187 影响班次数:
223 </label> 188 </label>
224 <div class="uk-form-controls"> 189 <div class="uk-form-controls">
225 - <input type="text" class="form-control" name="REPORT_YXBC" placeholder="影响班次数" required> 190 + <input type="text" class="form-control" name="REPORT_YXBC" placeholder="影响班次数" >
226 </div> 191 </div>
227 </div> 192 </div>
228 </div> 193 </div>
@@ -232,25 +197,7 @@ @@ -232,25 +197,7 @@
232 调整措施: 197 调整措施:
233 </label> 198 </label>
234 <div class="uk-form-controls"> 199 <div class="uk-form-controls">
235 - <input type="text" class="form-control" name="REPORT_TZCS" placeholder="调整措施" required>  
236 - </div>  
237 - </div>  
238 - </div>  
239 - <div class="uk-grid uk-width-2-3 uk-container-center">  
240 - <div class="uk-form-row">  
241 - <label class="uk-form-label">  
242 - 对外上报部门:  
243 - </label>  
244 - <div class="uk-form-controls">  
245 - <input type="text" class="form-control" name="REPORT_DWSBBM" placeholder="对外上报部门" required>  
246 - </div>  
247 - </div>  
248 - </div>  
249 - <div class="uk-grid uk-width-2-3 uk-container-center">  
250 - <div class="uk-form-row">  
251 - <label class="uk-form-label">对外上报时间:</label>  
252 - <div class="uk-form-controls">  
253 - <input type="text" class="form-control" name="REPORT_DWSBSJ" placeholder="对外上报时间" required> 200 + <input type="text" class="form-control" name="REPORT_TZCS" placeholder="调整措施" >
254 </div> 201 </div>
255 </div> 202 </div>
256 </div> 203 </div>
@@ -396,6 +343,54 @@ @@ -396,6 +343,54 @@
396 <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button> 343 <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button>
397 </div> 344 </div>
398 </form> 345 </form>
  346 + <!-- 绕改道-->
  347 + <form id="add_detour_table" class="c_register_form" style="display:none; margin-top: 35px;">
  348 + <div class="uk-grid uk-width-2-3 uk-container-center">
  349 + <div class="uk-form-row">
  350 + <label class="uk-form-label">
  351 + 路段:
  352 + </label>
  353 + <div class="uk-form-controls">
  354 + <input type="text" class="form-control" name="REPORT_ROAD" placeholder="路段" >
  355 + </div>
  356 + </div>
  357 + </div>
  358 + <div class="uk-grid uk-width-2-3 uk-container-center">
  359 + <div class="uk-form-row">
  360 + <label class="uk-form-label">
  361 + 行驶方向:
  362 + </label>
  363 + <div class="uk-form-controls">
  364 + <input type="text" class="form-control" name="REPORT_XSFX" placeholder="行驶方向" >
  365 + </div>
  366 + </div>
  367 + </div>
  368 + <div class="uk-grid uk-width-2-3 uk-container-center">
  369 + <div class="uk-form-row">
  370 + <label class="uk-form-label">
  371 + 跳站:
  372 + </label>
  373 + <div class="uk-form-controls">
  374 + <input type="text" class="form-control" name="REPORT_SGGK" placeholder="跳站" >
  375 + </div>
  376 + </div>
  377 + </div>
  378 + <div class="uk-grid uk-width-2-3 uk-container-center">
  379 + <div class="uk-form-row">
  380 + <label class="uk-form-label">
  381 + 原因:
  382 + </label>
  383 + <div class="uk-form-controls">
  384 + <textarea type="text" class="form-control" name="REPORT_BZ" placeholder="原因" required></textarea>
  385 + </div>
  386 + </div>
  387 + </div>
  388 + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">
  389 + <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
  390 + <button type="button" class="uk-button uk-modal-close">取消</button>
  391 + <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button>
  392 + </div>
  393 + </form>
399 <!-- 其他--> 394 <!-- 其他-->
400 <form id="add_rests_table" class="c_register_form" style="display:none; margin-top: 35px;"> 395 <form id="add_rests_table" class="c_register_form" style="display:none; margin-top: 35px;">
401 396
@@ -405,7 +400,7 @@ @@ -405,7 +400,7 @@
405 报备内容: 400 报备内容:
406 </label> 401 </label>
407 <div class="uk-form-controls"> 402 <div class="uk-form-controls">
408 - <input type="text" class="form-control" name="REPORT_BZ" placeholder="报备内容" required> 403 + <textarea type="text" class="form-control" name="REPORT_BZ" placeholder="报备内容" required></textarea>
409 </div> 404 </div>
410 </div> 405 </div>
411 </div> 406 </div>
@@ -495,6 +490,8 @@ @@ -495,6 +490,8 @@
495 typeInt = 5; 490 typeInt = 5;
496 } else if (tableActive == 'add_consult_table') { 491 } else if (tableActive == 'add_consult_table') {
497 typeInt = 6; 492 typeInt = 6;
  493 + } else if (tableActive == 'add_detour_table') {
  494 + typeInt = 7;
498 } 495 }
499 $('#REPORT_TYPE').val(typeInt); 496 $('#REPORT_TYPE').val(typeInt);
500 if(typeInt != rr.REPORT_TYPE ) { 497 if(typeInt != rr.REPORT_TYPE ) {
@@ -563,6 +560,8 @@ @@ -563,6 +560,8 @@
563 tableActive = 'add_rests_table'; 560 tableActive = 'add_rests_table';
564 } else if (REPORT_TYPE == 6) { 561 } else if (REPORT_TYPE == 6) {
565 tableActive = 'add_consult_table'; 562 tableActive = 'add_consult_table';
  563 + } else if (REPORT_TYPE == 7) {
  564 + tableActive = 'add_detour_table';
566 } 565 }
567 document.getElementById(tableActive).style.display = ""; 566 document.getElementById(tableActive).style.display = "";
568 changeType(tableActive); 567 changeType(tableActive);