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 71  
72 72 @Autowired
73 73 GpsDataLoaderThread gpsDataLoader;
74   -
75 74 @Autowired
76 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 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 36  
37 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 41 // final static String url = "http://192.168.168.228:8080/complaint/TsReport/input.do";
41 42  
42 43 @Autowired
... ...
src/main/java/com/bsth/controller/report/ReportController.java
... ... @@ -377,4 +377,16 @@ public class ReportController {
377 377  
378 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 83 List<Iterator<?>> list4 = new ArrayList<>();
84 84 List<Iterator<?>> list5 = new ArrayList<>();
85 85 List<Iterator<?>> list6 = new ArrayList<>();
  86 + List<Iterator<?>> list7 = new ArrayList<>();
86 87 List<Map<String, Object>> resList1 = new ArrayList<Map<String, Object>>();
87 88 List<Map<String, Object>> resList2 = new ArrayList<Map<String, Object>>();
88 89 List<Map<String, Object>> resList3 = new ArrayList<Map<String, Object>>();
89 90 List<Map<String, Object>> resList4 = new ArrayList<Map<String, Object>>();
90 91 List<Map<String, Object>> resList5 = new ArrayList<Map<String, Object>>();
91 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 95 ReportUtils ee = new ReportUtils();
94 96 for (ReportRegister l : list) {
95 97 Map<String, Object> m = new HashMap<String, Object>();
... ... @@ -152,6 +154,10 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L
152 154 i6++;
153 155 m.put("i", i6);
154 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 163 try {
... ... @@ -163,6 +169,8 @@ public class ReportRegisterServiceImpl extends BaseServiceImpl&lt;ReportRegister, L
163 169 lists.add(list3);
164 170 list4.add(resList4.iterator());
165 171 lists.add(list4);
  172 + list7.add(resList7.iterator());
  173 + lists.add(list7);
166 174 list5.add(resList5.iterator());
167 175 lists.add(list5);
168 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 36 @Transactional
37 37 @Modifying
38 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 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 72 + " and c.cl in (select s.carCode from Cars s where s.sfdc = ?7) order by c.xl")
73 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 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 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 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 5 import com.bsth.common.ResponseCode;
23 6 import com.bsth.data.BasicData;
24 7 import com.bsth.entity.Line;
... ... @@ -27,6 +10,9 @@ import com.bsth.entity.calc.CalcInterval;
27 10 import com.bsth.entity.calc.CalcLineMileage;
28 11 import com.bsth.entity.calc.CalcStatistics;
29 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 16 import com.bsth.entity.realcontrol.ChildTaskPlan;
31 17 import com.bsth.entity.realcontrol.ScheduleRealInfo;
32 18 import com.bsth.entity.sys.Interval;
... ... @@ -45,19 +31,27 @@ import com.bsth.service.realcontrol.ScheduleRealInfoService;
45 31 import com.bsth.service.report.CulateMileageService;
46 32 import com.bsth.service.report.ReportService;
47 33 import com.bsth.util.Arith;
48   -import com.bsth.util.BatchSaveUtils;
49 34 import com.bsth.util.ReportUtils;
50 35 import com.github.stuxuhai.jpinyin.PinyinException;
51 36 import com.github.stuxuhai.jpinyin.PinyinFormat;
52 37 import com.github.stuxuhai.jpinyin.PinyinHelper;
53   -
  38 +import org.apache.commons.lang3.StringUtils;
54 39 import org.slf4j.Logger;
55 40 import org.slf4j.LoggerFactory;
  41 +import org.springframework.beans.BeanUtils;
56 42 import org.springframework.beans.factory.annotation.Autowired;
57 43 import org.springframework.jdbc.core.JdbcTemplate;
58 44 import org.springframework.jdbc.core.RowMapper;
59 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 56 * Created by 17/11/16.
63 57 */
... ... @@ -75,7 +69,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
75 69  
76 70 @Autowired
77 71 private CalcBusMileageRepository calcBusMileageRepository;
78   -
  72 +
79 73 @Autowired
80 74 private CalcToolService calcToolService;
81 75  
... ... @@ -1809,6 +1803,632 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
1809 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 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 89 String lineCode = map.get("lineCode").toString();
90 90 Integer versions = Integer.valueOf(map.get("versions").toString());
91 91 Integer status = Integer.valueOf(map.get("status").toString());
  92 + String name = map.get("name").toString();
92 93 String remark = map.get("remark").toString();
93   -
  94 +
94 95 Line line = lineRepository.findOne(lineid);
95 96  
96 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 99 LineVersions upLineVersions = repository.findBylineIdAndVersions(line.getId(),versions);
99 100 if(upLineVersions != null){
100 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 61 List<Singledata> singledatatj(Map<String, Object> map);
62 62  
63 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 1 package com.bsth.service.report.impl;
  2 +import com.bsth.common.ResponseCode;
2 3 import com.bsth.data.BasicData;
3 4 import com.bsth.entity.CarDevice;
4 5 import com.bsth.entity.Line;
... ... @@ -16,6 +17,7 @@ import com.bsth.entity.sys.Interval;
16 17 import com.bsth.repository.LineRepository;
17 18 import com.bsth.repository.StationRouteRepository;
18 19 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  20 +import com.bsth.service.calc.CalcWaybillService;
19 21 import com.bsth.service.report.CulateMileageService;
20 22 import com.bsth.service.report.ReportService;
21 23 import com.bsth.service.sys.DictionaryService;
... ... @@ -27,6 +29,7 @@ import com.bsth.util.db.DBUtils_MS;
27 29 import com.google.protobuf.StringValue;
28 30  
29 31 import org.apache.commons.lang.StringUtils;
  32 +import org.apache.poi.hssf.usermodel.HSSFWorkbook;
30 33 import org.slf4j.Logger;
31 34 import org.slf4j.LoggerFactory;
32 35 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -34,6 +37,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
34 37 import org.springframework.jdbc.core.RowMapper;
35 38 import org.springframework.stereotype.Service;
36 39  
  40 +import java.io.FileOutputStream;
37 41 import java.sql.Connection;
38 42 import java.sql.PreparedStatement;
39 43 import java.sql.ResultSet;
... ... @@ -75,7 +79,9 @@ public class ReportServiceImpl implements ReportService{
75 79 CulateMileageService culateMileageService;
76 80 @Autowired
77 81 DictionaryService dictionaryService;
78   -
  82 + @Autowired
  83 + CalcWaybillService calcWaybillService;
  84 +
79 85 @Override
80 86 public List<ScheduleRealInfo> queryListBczx(String line, String date,String clzbh) {
81 87 // TODO Auto-generated method stub
... ... @@ -4220,6 +4226,27 @@ public class ReportServiceImpl implements ReportService{
4220 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 4250 private String getShyy(String node){
4224 4251 String shyy ="无";
4225 4252 if(!node.equals("")){
... ...
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
... ... @@ -611,7 +611,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
611 611 try {
612 612  
613 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 615 +" from bsth_c_s_sp_info_real where schedule_date_str >= '"+startDate
616 616 +"' and schedule_date_str <= '"+endDate+"'";
617 617 if(line.length() != 0){
... ... @@ -650,6 +650,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
650 650 schedule.setQdzName(rs.getString("qdz_name"));
651 651 schedule.setSpId(rs.getLong("sp_id"));
652 652 schedule.setCcService(rs.getBoolean("cc_service"));
  653 + schedule.setLpName(rs.getString("lp_name"));
653 654  
654 655 if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
655 656 schedule.setFcsjActual(null);
... ... @@ -718,7 +719,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
718 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 723 if(model.length() != 0){
723 724 if(ttSet.contains(schedule.getSpId())){
724 725 if(!keyMap.containsKey(key))
... ... @@ -810,6 +811,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
810 811 tempMap.put("line", split[0]);
811 812 tempMap.put("qdz", split[1]);
812 813 tempMap.put("jhfc", split[2]);
  814 + tempMap.put("lp", split[4]);
813 815 tempMap.put("jhbc", jhbc);
814 816 tempMap.put("sjbc", sjbc);
815 817 tempList.add(tempMap);
... ... @@ -819,27 +821,32 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
819 821 Map<String, List<Map<String, Object>>> listMap = new HashMap<String, List<Map<String, Object>>>();
820 822 Map<String, List<Map<String, Object>>> listMap2 = new HashMap<String, List<Map<String, Object>>>();
821 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 825 if(!listMap.containsKey(key))
824 826 listMap.put(key, new ArrayList<Map<String, Object>>());
825 827 listMap.get(key).add(m);
826 828 }
827 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 831 List<Integer> keyList = new ArrayList<Integer>();
830 832 for(Map<String, Object> m : listMap.get(key)){
831 833 String[] split = m.get("jhfc").toString().split(":");
832 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 842 Collections.sort(keyList);
837 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 846 String str = m.get("line").toString();
840 847 if(!listMap2.containsKey(str))
841 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 852 for(String str : listMap2.keySet()){
... ... @@ -860,6 +867,13 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
860 867  
861 868 //导出
862 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 877 String lineName = "";
864 878 if(map.containsKey("lineName"))
865 879 lineName = map.get("lineName").toString();
... ...
src/main/java/com/bsth/util/ReportUtils.java
... ... @@ -8,20 +8,26 @@ import java.util.HashMap;
8 8 import java.util.Iterator;
9 9 import java.util.List;
10 10 import java.util.Map;
  11 +import java.util.TreeMap;
11 12 import java.util.regex.Matcher;
12 13 import java.util.regex.Pattern;
13 14  
  15 +import com.bsth.common.ResponseCode;
14 16 import org.apache.poi.hssf.usermodel.HSSFCell;
15 17 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  18 +import org.apache.poi.hssf.usermodel.HSSFFont;
16 19 import org.apache.poi.hssf.usermodel.HSSFRow;
17 20 import org.apache.poi.hssf.usermodel.HSSFSheet;
18 21 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
19 22 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
20 23 import org.apache.poi.ss.usermodel.Cell;
  24 +import org.apache.poi.ss.usermodel.Workbook;
21 25 import org.apache.poi.ss.util.CellRangeAddress;
22 26  
23 27 import com.bsth.entity.Line;
24 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 32 public class ReportUtils {
27 33 // private final String packaegName = "com.bsth.entity.";
... ... @@ -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 218 </attributes>
219 219 </connection>
220 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 221 <name>xlab_mysql_youle</name>
318 222 <server>101.231.124.8</server>
319 223 <type>MYSQL</type>
... ... @@ -392,102 +296,6 @@
392 296 <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
393 297 </attributes>
394 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 299 <order>
492 300 <hop> <from>&#x5217;&#x8f6c;&#x884c;</from><to>&#x53bb;&#x9664;&#x5b57;&#x6bb5;</to><enabled>Y</enabled> </hop>
493 301 <hop> <from>&#x53bb;&#x9664;&#x5b57;&#x6bb5;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
... ... @@ -4084,7 +3892,7 @@
4084 3892 <optimizationLevel>9</optimizationLevel>
4085 3893 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
4086 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 3896 </jsScript> </jsScripts> <fields> <field> <name>all_content</name>
4089 3897 <rename>all_content</rename>
4090 3898 <type>String</type>
... ... @@ -4156,7 +3964,7 @@
4156 3964 <schema_name/>
4157 3965 </partitioning>
4158 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 3968 <limit>0</limit>
4161 3969 <lookup>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</lookup>
4162 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 36 </div>
37 37 </div>
38 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 49 <label class="col-md-3 control-label">选择方向:</label>
40   - <div class="col-md-9">
  50 + <div class="col-md-3">
41 51 <div class="icheck-list">
42 52 <label> <input type="radio" class="icheck"
43 53 name="dirCheck" value='0' checked> 上行
... ... @@ -55,16 +65,22 @@
55 65 坐标生成路线规划说明: </span>
56 66 </h5>
57 67 <p>
  68 +
58 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 73 <br>121.511870 31.180638 043703.000
64 74 <br>121.511870 31.180643 043705.000
65 75 <br>121.511870 31.180648 043706.000 Stop
66 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 84 </span>
69 85 </p>
70 86 </div>
... ... @@ -95,7 +111,55 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m
95 111 $('.modal-footer #templateSaveData').on('click',function() {
96 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 163 form.validate({
100 164  
101 165 errorElement : 'span',
... ... @@ -151,6 +215,12 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m
151 215 var dirStr = '';
152 216 // 路线方向
153 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 224 editRoute.setLineDir(directionData);
155 225 // 设置线路对象生成方式
156 226 editRoute.setLineGenerationType('uploadGPS');
... ... @@ -158,16 +228,22 @@ $(&#39;#edit_route_mobal&#39;).on(&#39;editRouteMobal.show&#39;, function(e,transGPS,editRoute,m
158 228 var i = layer.load(2);
159 229 // 表单序列化
160 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 239 var arrayFormat = inputStationValueFormat(array);
165 240 var stationList = arrayFormat.stationList;
166 241 var sectionListTemp = arrayFormat.sectionList;
167 242 var sectionList = [];
168 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 248 sectionList[sectionList.length] = sectionListTemp[sectionListTemp.length-1];
173 249  
... ...
src/main/resources/static/pages/base/lineversions/edit.html
... ... @@ -47,7 +47,16 @@
47 47 <input type="hidden" name="status" id="statusInput" />
48 48 <input type="hidden" name="Id" id="IdInput" />
49 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 60 <!-- 表单分组组件 form-group START -->
52 61 <div class="form-group">
53 62 <label class="control-label col-md-5">
... ... @@ -110,7 +119,7 @@
110 119 <div class="form-group">
111 120 <label class="control-label col-md-5"> 描述/说明&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
112 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 123 </div>
115 124 </div>
116 125 <!-- 表单分组组件 form-group END -->
... ...
src/main/resources/static/pages/base/lineversions/js/lineversions-edit-from.js
... ... @@ -90,6 +90,7 @@
90 90 $("#endDateInput").val(moment(result.endDate).format('YYYY-MM-DD HH:mm:ss'));
91 91 $("#versionsInput").val(result.versions);
92 92 $("#statusInput").val(result.status);
  93 + $("#nameInput").val(result.name);
93 94 $("#remarkTextarea").val(result.remark);
94 95 }
95 96  
... ... @@ -144,6 +145,7 @@
144 145 'line' : {required : true,maxlength: 30},// 线路名称 必填项、最大长度.
145 146 'startDate' : {required : true},// 启用时间 不为空.
146 147 'endDate' : {required : true},// 结束时间.
  148 + 'name' : {required : true},// 版本名称.
147 149 'versions' : {required : true, digits : true, maxlength: 10},// 版本号 必填项、数字、最大长度10.
148 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 79 <th width="8%">分公司</th>
80 80 <th width="8%">线路</th>
81 81 <th width="8%">起点站名</th>
  82 + <th width="6%">路牌</th>
82 83 <th width="6%">计发时间</th>
83 84 <th width="6%">计划运送时间(分)</th>
84 85 <th width="6%">计划完成次数</th>
... ... @@ -424,6 +425,7 @@
424 425 <td>{{obj.subCompany}}</td>
425 426 <td>{{obj.line}}</td>
426 427 <td>{{obj.qdz}}</td>
  428 + <td>{{obj.lp}}</td>
427 429 <td>{{obj.jhfc}}</td>
428 430 <td>{{obj.bcsj}}</td>
429 431 <td>{{obj.jhbc}}</td>
... ... @@ -438,7 +440,7 @@
438 440 {{/each}}
439 441 {{if list.length == 0}}
440 442 <tr>
441   - <td colspan="14"><h6 class="muted">没有找到相关数据</h6></td>
  443 + <td colspan="15"><h6 class="muted">没有找到相关数据</h6></td>
442 444 </tr>
443 445 {{/if}}
444 446 </script>
445 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 2 .table-bordered {
3 3 border: 1px solid; }
4 4 .table-bordered > thead > tr > th,
... ...
src/main/resources/static/pages/permission/user/changePWD.html
... ... @@ -55,10 +55,10 @@ $(function(){
55 55 var error = $('.alert-danger', form);
56 56  
57 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 60 return this.optional(element) ||(reg.test(value));
61   - }, "需包含字母、数字的8-16位字符");
  61 + }, "需包含大小写字母、数字、以及特殊符号的8-16位字符");
62 62  
63 63 //表单 validate
64 64 form.validate({
... ... @@ -68,7 +68,7 @@ $(function(){
68 68 rules : {
69 69 'newPWD' : {
70 70 required : true,
71   - minlength: 8,
  71 + minlength: 6,
72 72 maxlength: 16,
73 73 passwordrule:true
74 74 },
... ... @@ -96,7 +96,6 @@ $(function(){
96 96 submitHandler : function(f) {
97 97 var params = form.serializeJSON();
98 98 error.hide();
99   -
100 99 var keys;
101 100 $.ajax({
102 101 url: "/user/login/jCryptionKey?t="+Math.random(),
... ... @@ -120,6 +119,7 @@ $(function(){
120 119 data: params,
121 120 success: function(msg){
122 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 40 <option value="1">首末班误点</option>
41 41 <option value="2">大间隔</option>
42 42 <option value="3">突发事件</option>
43   - <option value="4">事故</option>
  43 + <option value="7">绕改道</option>
  44 +<!-- <option value="4">事故</option> -->
44 45 <option value="5">其他</option>
45   - <option value="6">咨询</option>
  46 +<!-- <option value="6">咨询</option> -->
46 47 </select>
47 48 </div>
48 49 </div>
... ... @@ -88,25 +89,7 @@
88 89 首末班延误原因:
89 90 </label>
90 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 93 </div>
111 94 </div>
112 95 </div>
... ... @@ -124,7 +107,7 @@
124 107 路段:
125 108 </label>
126 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 111 </div>
129 112 </div>
130 113 </div>
... ... @@ -134,7 +117,7 @@
134 117 行驶方向:
135 118 </label>
136 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 121 </div>
139 122 </div>
140 123 </div>
... ... @@ -144,7 +127,7 @@
144 127 站点:
145 128 </label>
146 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 131 </div>
149 132 </div>
150 133 </div>
... ... @@ -168,24 +151,6 @@
168 151 </div>
169 152 </div>
170 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 154 <div class="uk-modal-footer uk-text-right">
190 155 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
191 156 <button type="button" class="uk-button uk-modal-close">取消</button>
... ... @@ -211,7 +176,7 @@
211 176 影响时间:
212 177 </label>
213 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 180 </div>
216 181 </div>
217 182 </div>
... ... @@ -221,7 +186,7 @@
221 186 影响班次数:
222 187 </label>
223 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 190 </div>
226 191 </div>
227 192 </div>
... ... @@ -231,25 +196,7 @@
231 196 调整措施:
232 197 </label>
233 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 200 </div>
254 201 </div>
255 202 </div>
... ... @@ -395,6 +342,54 @@
395 342 <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button>
396 343 </div>
397 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 394 <form id="add_rests_table" class="c_register_form" style="display:none; margin-top: 35px;">
400 395  
... ... @@ -404,7 +399,7 @@
404 399 报备内容:
405 400 </label>
406 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 403 </div>
409 404 </div>
410 405 </div>
... ... @@ -494,6 +489,8 @@
494 489 typeInt = 5;
495 490 } else if (tableActive == 'add_consult_table') {
496 491 typeInt = 6;
  492 + } else if (tableActive == 'add_detour_table') {
  493 + typeInt = 7;
497 494 } else {
498 495 UIkit.modal(modal).hide();
499 496 notify_err('您所选的数据有问题,请重新选择!');
... ... @@ -553,6 +550,8 @@
553 550 tableActive = 'add_rests_table';
554 551 } else if (REPORT_TYPE == 6) {
555 552 tableActive = 'add_consult_table';
  553 + } else if (REPORT_TYPE == 7) {
  554 + tableActive = 'add_detour_table';
556 555 }
557 556 document.getElementById(tableActive).style.display = "";
558 557 changeType(tableActive);
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/list.html
... ... @@ -33,9 +33,10 @@
33 33 <li id="first_last_late" class="uk-active"><a>首末班误点</a></li>
34 34 <li id="large_interval"><a>大间隔</a></li>
35 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 38 <li id="rests"><a>其他</a></li>
38   - <li id="consult"><a>咨询</a></li>
  39 +<!-- <li id="consult"><a>咨询</a></li> -->
39 40 </ul>
40 41 </div>
41 42  
... ... @@ -68,8 +69,6 @@
68 69 <th width="7%">延误站点</th>
69 70 <th width="5%">延误时间</th>
70 71 <th width="10%">首末班延误原因</th>
71   - <th width="7%">对外上报部门</th>
72   - <th width="7%">对外上报时间</th>
73 72 </tr>
74 73 </thead>
75 74 <tbody class="table_body">
... ... @@ -90,8 +89,6 @@
90 89 <th width="7%">站点</th>
91 90 <th width="7%">大间隔时间</th>
92 91 <th width="7%">大间隔原因</th>
93   - <th width="7%">对外上报部门</th>
94   - <th width="7%">对外上报时间</th>
95 92 </tr>
96 93 </thead>
97 94 <tbody class="table_body">
... ... @@ -111,8 +108,6 @@
111 108 <th width="7%">影响时间</th>
112 109 <th width="7%">影响班次数</th>
113 110 <th width="7%">调整措施</th>
114   - <th width="7%">对外上报部门</th>
115   - <th width="7%">对外上报时间</th>
116 111 </tr>
117 112 </thead>
118 113 <tbody class="table_body">
... ... @@ -146,6 +141,25 @@
146 141 <tbody class="table_body">
147 142 </tbody>
148 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 164 <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="rests_table">
151 165 <tr role="row">
... ... @@ -202,8 +216,6 @@
202 216 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
203 217 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td>
204 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 219 </tr>
208 220 {{/each}}
209 221 </script>
... ... @@ -225,8 +237,6 @@
225 237 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
226 238 <td style="vertical-align: middle;">{{obj.report_DJGSNAMEJ}}</td>
227 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 240 </tr>
231 241 {{/each}}
232 242 </script>
... ... @@ -247,8 +257,6 @@
247 257 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td>
248 258 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td>
249 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 260 </tr>
253 261 {{/each}}
254 262 </script>
... ... @@ -281,6 +289,26 @@
281 289 </tr>
282 290 {{/each}}
283 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 312 <script id="rests_table_body_list" type="text/html">
285 313 {{each data.list as obj i}}
286 314 {{if obj.status == 2}}
... ... @@ -410,7 +438,7 @@
410 438 if (data.status == "SUCCESS") {
411 439 var list = data.list;
412 440 var tableList1 = [], tableList2 = [], tableList3 = [], tableList4 = [], tableList5 = [],
413   - tableList6 = [];
  441 + tableList6 = [], tableList7 = [];
414 442 $.each(list, function (i, rr) {
415 443 rr.report_DATE = formatDate(new Date(rr.report_DATE));
416 444 if (rr.report_TYPE == 1) {
... ... @@ -425,6 +453,8 @@
425 453 tableList5.push(rr);
426 454 } else if (rr.report_TYPE == 6) {
427 455 tableList6.push(rr);
  456 + } else if (rr.report_TYPE == 7) {
  457 + tableList7.push(rr);
428 458 }
429 459 });
430 460 var htmlStr = template('first_last_late_table_body_list', {'data':{'list': tableList1,'line':lineList}});
... ... @@ -435,6 +465,8 @@
435 465 $('#emergency_table .table_body', modal).html(htmlStr);
436 466 htmlStr = template('accident_table_body_list', {'data':{'list': tableList4,'line':lineList}});
437 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 470 htmlStr = template('rests_table_body_list', {'data':{'list': tableList5,'line':lineList}});
439 471 $('#rests_table .table_body', modal).html(htmlStr);
440 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 43 <option value="1">首末班误点</option>
44 44 <option value="2">大间隔</option>
45 45 <option value="3">突发事件</option>
46   - <option value="4">事故</option>
  46 +<!-- <option value="4">事故</option> -->
47 47 <option value="5">其他</option>
48   - <option value="6">咨询</option>
  48 +<!-- <option value="6">咨询</option> -->
49 49 </select>
50 50 </div>
51 51 <div class="form-group">
... ... @@ -190,8 +190,6 @@
190 190 <th width="7%">延误站点</th>
191 191 <th width="5%">延误时间</th>
192 192 <th width="10%">首末班延误原因</th>
193   - <th width="7%">对外上报部门</th>
194   - <th width="7%">对外上报时间</th>
195 193 </tr>
196 194 </thead>
197 195 <tbody>
... ... @@ -206,8 +204,6 @@
206 204 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
207 205 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td>
208 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 207 </tr>
212 208 {{/each}}
213 209 {{if list.length == 0}}
... ... @@ -228,8 +224,6 @@
228 224 <th width="7%">站点</th>
229 225 <th width="7%">大间隔时间</th>
230 226 <th width="7%">大间隔原因</th>
231   - <th width="7%">对外上报部门</th>
232   - <th width="7%">对外上报时间</th>
233 227 </tr>
234 228 </thead>
235 229 <tbody>
... ... @@ -246,8 +240,6 @@
246 240 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
247 241 <td style="vertical-align: middle;">{{obj.report_DJGSJ}}</td>
248 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 243 </tr>
252 244 {{/each}}
253 245 {{if list.length == 0}}
... ... @@ -267,8 +259,6 @@
267 259 <th width="7%">影响时间</th>
268 260 <th width="7%">影响班次数</th>
269 261 <th width="7%">调整措施</th>
270   - <th width="7%">对外上报部门</th>
271   - <th width="7%">对外上报时间</th>
272 262 </tr>
273 263 </thead>
274 264 <tbody>
... ... @@ -284,8 +274,6 @@
284 274 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td>
285 275 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td>
286 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 277 </tr>
290 278 {{/each}}
291 279 {{if list.length == 0}}
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/report_register/manage.html
... ... @@ -36,9 +36,10 @@
36 36 <li id="first_last_late" class="uk-active"><a>首末班误点</a></li>
37 37 <li id="large_interval"><a>大间隔</a></li>
38 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 41 <li id="rests"><a>其他</a></li>
41   - <li id="consult"><a>咨询</a></li>
  42 +<!-- <li id="consult"><a>咨询</a></li> -->
42 43 </ul>
43 44 </div>
44 45  
... ... @@ -68,8 +69,6 @@
68 69 <th width="7%">延误站点</th>
69 70 <th width="5%">延误时间</th>
70 71 <th width="10%">首末班延误原因</th>
71   - <th width="7%">对外上报部门</th>
72   - <th width="7%">对外上报时间</th>
73 72 </tr>
74 73 </thead>
75 74 <tbody class="table_body">
... ... @@ -89,8 +88,6 @@
89 88 <th width="7%">站点</th>
90 89 <th width="7%">大间隔时间</th>
91 90 <th width="7%">大间隔原因</th>
92   - <th width="7%">对外上报部门</th>
93   - <th width="7%">对外上报时间</th>
94 91 </tr>
95 92 </thead>
96 93 <tbody class="table_body">
... ... @@ -109,8 +106,6 @@
109 106 <th width="7%">影响时间</th>
110 107 <th width="7%">影响班次数</th>
111 108 <th width="7%">调整措施</th>
112   - <th width="7%">对外上报部门</th>
113   - <th width="7%">对外上报时间</th>
114 109 </tr>
115 110 </thead>
116 111 <tbody class="table_body">
... ... @@ -143,6 +138,24 @@
143 138 <tbody class="table_body">
144 139 </tbody>
145 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 160 <table class="table table-striped table-bordered table-hover table-checkable report-register-table" style="display:none" id="rests_table">
148 161 <thead class="">
... ... @@ -204,8 +217,6 @@
204 217 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
205 218 <td style="vertical-align: middle;">{{obj.report_YWSJ}}</td>
206 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 220 </tr>
210 221 {{/each}}
211 222 </script>
... ... @@ -233,8 +244,6 @@
233 244 <td style="vertical-align: middle;">{{obj.report_STATION}}</td>
234 245 <td style="vertical-align: middle;">{{obj.report_DJGSJ}}</td>
235 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 247 </tr>
239 248 {{/each}}
240 249 </script>
... ... @@ -261,8 +270,6 @@
261 270 <td style="vertical-align: middle;">{{obj.report_YXSJ}}</td>
262 271 <td style="vertical-align: middle;">{{obj.report_YXBC}}</td>
263 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 273 </tr>
267 274 {{/each}}
268 275 </script>
... ... @@ -301,6 +308,33 @@
301 308 </tr>
302 309 {{/each}}
303 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 338 <script id="rests_table_body" type="text/html">
305 339 {{each data.list as obj i}}
306 340  
... ... @@ -434,7 +468,7 @@
434 468 if (data.status == "SUCCESS") {
435 469 var list = data.list;
436 470 var tableList1 = [], tableList2 = [], tableList3 = [], tableList4 = [], tableList5 = [],
437   - tableList6 = [];
  471 + tableList6 = [], tableList7 = [];
438 472 $.each(list, function (i, rr) {
439 473 rr.report_DATE = formatDate(new Date(rr.report_DATE));
440 474 if (rr.report_TYPE == 1) {
... ... @@ -449,6 +483,8 @@
449 483 tableList5.push(rr);
450 484 } else if (rr.report_TYPE == 6) {
451 485 tableList6.push(rr);
  486 + } else if (rr.report_TYPE == 7) {
  487 + tableList7.push(rr);
452 488 }
453 489 });
454 490 var htmlStr = template('first_last_late_table_body', {'data':{'list': tableList1,'line':lineList}});
... ... @@ -459,6 +495,8 @@
459 495 $('#emergency_table .table_body', modal).html(htmlStr);
460 496 htmlStr = template('accident_table_body', {'data':{'list': tableList4,'line':lineList}});
461 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 500 htmlStr = template('rests_table_body', {'data':{'list': tableList5,'line':lineList}});
463 501 $('#rests_table .table_body', modal).html(htmlStr);
464 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 41 <option value="1">首末班误点</option>
42 42 <option value="2">大间隔</option>
43 43 <option value="3">突发事件</option>
44   - <option value="4">事故</option>
  44 + <option value="7">绕改道</option>
  45 +<!-- <option value="4">事故</option> -->
45 46 <option value="5">其他</option>
46   - <option value="6">咨询</option>
  47 +<!-- <option value="6">咨询</option> -->
47 48 </select>
48 49 </div>
49 50 </div>
... ... @@ -93,24 +94,6 @@
93 94 </div>
94 95 </div>
95 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 97 <div class="uk-modal-footer uk-text-right">
115 98 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
116 99 <button type="button" class="uk-button uk-modal-close">取消</button>
... ... @@ -125,7 +108,7 @@
125 108 路段:
126 109 </label>
127 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 112 </div>
130 113 </div>
131 114 </div>
... ... @@ -135,7 +118,7 @@
135 118 行驶方向:
136 119 </label>
137 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 122 </div>
140 123 </div>
141 124 </div>
... ... @@ -145,7 +128,7 @@
145 128 站点:
146 129 </label>
147 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 132 </div>
150 133 </div>
151 134 </div>
... ... @@ -169,24 +152,6 @@
169 152 </div>
170 153 </div>
171 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 155 <div class="uk-modal-footer uk-text-right">
191 156 <span class="bind_gas_station_panel" style="position: absolute;left: 30px;text-decoration: underline;"></span>
192 157 <button type="button" class="uk-button uk-modal-close">取消</button>
... ... @@ -212,7 +177,7 @@
212 177 影响时间:
213 178 </label>
214 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 181 </div>
217 182 </div>
218 183 </div>
... ... @@ -222,7 +187,7 @@
222 187 影响班次数:
223 188 </label>
224 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 191 </div>
227 192 </div>
228 193 </div>
... ... @@ -232,25 +197,7 @@
232 197 调整措施:
233 198 </label>
234 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 201 </div>
255 202 </div>
256 203 </div>
... ... @@ -396,6 +343,54 @@
396 343 <button type="submit" class="uk-button uk-button-primary submitBtn"><i class="uk-icon-check"></i> &nbsp;保存</button>
397 344 </div>
398 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 395 <form id="add_rests_table" class="c_register_form" style="display:none; margin-top: 35px;">
401 396  
... ... @@ -405,7 +400,7 @@
405 400 报备内容:
406 401 </label>
407 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 404 </div>
410 405 </div>
411 406 </div>
... ... @@ -495,6 +490,8 @@
495 490 typeInt = 5;
496 491 } else if (tableActive == 'add_consult_table') {
497 492 typeInt = 6;
  493 + } else if (tableActive == 'add_detour_table') {
  494 + typeInt = 7;
498 495 }
499 496 $('#REPORT_TYPE').val(typeInt);
500 497 if(typeInt != rr.REPORT_TYPE ) {
... ... @@ -563,6 +560,8 @@
563 560 tableActive = 'add_rests_table';
564 561 } else if (REPORT_TYPE == 6) {
565 562 tableActive = 'add_consult_table';
  563 + } else if (REPORT_TYPE == 7) {
  564 + tableActive = 'add_detour_table';
566 565 }
567 566 document.getElementById(tableActive).style.display = "";
568 567 changeType(tableActive);
... ...