Commit ed7aabcadd808a218684366e6bcf55d80c357603

Authored by 娄高锋
1 parent fb6abc69

路单线路明细月/年报表,添加氢能源统计

src/main/java/com/bsth/entity/calc/CalcWaybillDetail.java
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 -} 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 bgldh=0.0;
  108 +
  109 + //出站存氢
  110 + private Double czcq=0.0;
  111 + //进站存氢
  112 + private Double jzcq=0.0;
  113 + //充氢量
  114 + private Double cql=0.0;
  115 + //耗氢
  116 + private Double hq=0.0;
  117 + //百公里氢耗
  118 + private Double bglqh=0.0;
  119 +
  120 + // 天数记录
  121 + private int ts;
  122 +
  123 + /* 创建时间*/
  124 + private Date createTime;
  125 + /* 修改时间*/
  126 + private Date updateTime;
  127 + public Long getId() {
  128 + return id;
  129 + }
  130 + public void setId(Long id) {
  131 + this.id = id;
  132 + }
  133 + public String getGsdm() {
  134 + return gsdm;
  135 + }
  136 + public void setGsdm(String gsdm) {
  137 + this.gsdm = gsdm;
  138 + }
  139 + public String getGsname() {
  140 + return gsname;
  141 + }
  142 + public void setGsname(String gsname) {
  143 + this.gsname = gsname;
  144 + }
  145 + public String getFgsdm() {
  146 + return fgsdm;
  147 + }
  148 + public void setFgsdm(String fgsdm) {
  149 + this.fgsdm = fgsdm;
  150 + }
  151 + public String getFgsname() {
  152 + return fgsname;
  153 + }
  154 + public void setFgsname(String fgsname) {
  155 + this.fgsname = fgsname;
  156 + }
  157 + public Date getRq() {
  158 + return rq;
  159 + }
  160 + public void setRq(Date rq) {
  161 + this.rq = rq;
  162 + }
  163 + public String getRqStr() {
  164 + return rqStr;
  165 + }
  166 + public void setRqStr(String rqStr) {
  167 + this.rqStr = rqStr;
  168 + }
  169 + public String getXl() {
  170 + return xl;
  171 + }
  172 + public void setXl(String xl) {
  173 + this.xl = xl;
  174 + }
  175 + public String getXlName() {
  176 + return xlName;
  177 + }
  178 + public void setXlName(String xlName) {
  179 + this.xlName = xlName;
  180 + }
  181 + public String getCl() {
  182 + return cl;
  183 + }
  184 + public void setCl(String cl) {
  185 + this.cl = cl;
  186 + }
  187 + public String getLp() {
  188 + return lp;
  189 + }
  190 + public void setLp(String lp) {
  191 + this.lp = lp;
  192 + }
  193 + public String getjGh() {
  194 + return jGh;
  195 + }
  196 + public void setjGh(String jGh) {
  197 + this.jGh = jGh;
  198 + }
  199 + public String getjName() {
  200 + return jName;
  201 + }
  202 + public void setjName(String jName) {
  203 + this.jName = jName;
  204 + }
  205 + public String getsGh() {
  206 + return sGh;
  207 + }
  208 + public void setsGh(String sGh) {
  209 + this.sGh = sGh;
  210 + }
  211 + public String getsName() {
  212 + return sName;
  213 + }
  214 + public void setsName(String sName) {
  215 + this.sName = sName;
  216 + }
  217 + public int getJhyybc() {
  218 + return jhyybc;
  219 + }
  220 + public void setJhyybc(int jhyybc) {
  221 + this.jhyybc = jhyybc;
  222 + }
  223 + public int getJhyybczgf() {
  224 + return jhyybczgf;
  225 + }
  226 + public void setJhyybczgf(int jhyybczgf) {
  227 + this.jhyybczgf = jhyybczgf;
  228 + }
  229 + public int getJhyybcwgf() {
  230 + return jhyybcwgf;
  231 + }
  232 + public void setJhyybcwgf(int jhyybcwgf) {
  233 + this.jhyybcwgf = jhyybcwgf;
  234 + }
  235 + public int getJhfyybc() {
  236 + return jhfyybc;
  237 + }
  238 + public void setJhfyybc(int jhfyybc) {
  239 + this.jhfyybc = jhfyybc;
  240 + }
  241 + public Double getJhyylc() {
  242 + return jhyylc;
  243 + }
  244 + public void setJhyylc(Double jhyylc) {
  245 + this.jhyylc = jhyylc;
  246 + }
  247 + public Double getJhfyylc() {
  248 + return jhfyylc;
  249 + }
  250 + public void setJhfyylc(Double jhfyylc) {
  251 + this.jhfyylc = jhfyylc;
  252 + }
  253 + public int getSjyybc() {
  254 + return sjyybc;
  255 + }
  256 + public void setSjyybc(int sjyybc) {
  257 + this.sjyybc = sjyybc;
  258 + }
  259 + public int getSjyybczgf() {
  260 + return sjyybczgf;
  261 + }
  262 + public void setSjyybczgf(int sjyybczgf) {
  263 + this.sjyybczgf = sjyybczgf;
  264 + }
  265 + public int getSjyybcwgf() {
  266 + return sjyybcwgf;
  267 + }
  268 + public void setSjyybcwgf(int sjyybcwgf) {
  269 + this.sjyybcwgf = sjyybcwgf;
  270 + }
  271 + public int getSjfyybc() {
  272 + return sjfyybc;
  273 + }
  274 + public void setSjfyybc(int sjfyybc) {
  275 + this.sjfyybc = sjfyybc;
  276 + }
  277 + public Double getSjyylc() {
  278 + return sjyylc;
  279 + }
  280 + public void setSjyylc(Double sjyylc) {
  281 + this.sjyylc = sjyylc;
  282 + }
  283 + public Double getSjfyylc() {
  284 + return sjfyylc;
  285 + }
  286 + public void setSjfyylc(Double sjfyylc) {
  287 + this.sjfyylc = sjfyylc;
  288 + }
  289 + public int getLjbc() {
  290 + return ljbc;
  291 + }
  292 + public void setLjbc(int ljbc) {
  293 + this.ljbc = ljbc;
  294 + }
  295 + public int getLjbczgf() {
  296 + return ljbczgf;
  297 + }
  298 + public void setLjbczgf(int ljbczgf) {
  299 + this.ljbczgf = ljbczgf;
  300 + }
  301 + public int getLjbcwgf() {
  302 + return ljbcwgf;
  303 + }
  304 + public void setLjbcwgf(int ljbcwgf) {
  305 + this.ljbcwgf = ljbcwgf;
  306 + }
  307 + public Double getLjyylc() {
  308 + return ljyylc;
  309 + }
  310 + public void setLjyylc(Double ljyylc) {
  311 + this.ljyylc = ljyylc;
  312 + }
  313 + public Double getLjfyylc() {
  314 + return ljfyylc;
  315 + }
  316 + public void setLjfyylc(Double ljfyylc) {
  317 + this.ljfyylc = ljfyylc;
  318 + }
  319 + public int getLbbc() {
  320 + return lbbc;
  321 + }
  322 + public void setLbbc(int lbbc) {
  323 + this.lbbc = lbbc;
  324 + }
  325 + public Double getLblc() {
  326 + return lblc;
  327 + }
  328 + public void setLblc(Double lblc) {
  329 + this.lblc = lblc;
  330 + }
  331 +
  332 + public Double getZlc() {
  333 + return zlc;
  334 + }
  335 +
  336 + public void setZlc(Double zlc) {
  337 + this.zlc = zlc;
  338 + }
  339 +
  340 + public Double getCzlc() {
  341 + return czlc;
  342 + }
  343 +
  344 + public void setCzlc(Double czlc) {
  345 + this.czlc = czlc;
  346 + }
  347 +
  348 + public Double getJzlc() {
  349 + return jzlc;
  350 + }
  351 +
  352 + public void setJzlc(Double jzlc) {
  353 + this.jzlc = jzlc;
  354 + }
  355 +
  356 + public Double getCzyl() {
  357 + return czyl;
  358 + }
  359 +
  360 + public void setCzyl(Double czyl) {
  361 + this.czyl = czyl;
  362 + }
  363 +
  364 + public Double getJzyl() {
  365 + return jzyl;
  366 + }
  367 +
  368 + public void setJzyl(Double jzyl) {
  369 + this.jzyl = jzyl;
  370 + }
  371 +
  372 + public Double getJzl() {
  373 + return jzl;
  374 + }
  375 +
  376 + public Double getJzl0() {
  377 + return jzl0;
  378 + }
  379 +
  380 + public void setJzl0(Double jzl0) {
  381 + this.jzl0 = jzl0;
  382 + }
  383 +
  384 + public Double getJzl10() {
  385 + return jzl10;
  386 + }
  387 +
  388 + public void setJzl10(Double jzl10) {
  389 + this.jzl10 = jzl10;
  390 + }
  391 +
  392 + public void setJzl(Double jzl) {
  393 + this.jzl = jzl;
  394 + }
  395 +
  396 + public Double getYh() {
  397 + return yh;
  398 + }
  399 +
  400 + public void setYh(Double yh) {
  401 + this.yh = yh;
  402 + }
  403 +
  404 + public Double getBglyh() {
  405 + return bglyh;
  406 + }
  407 +
  408 + public void setBglyh(Double bglyh) {
  409 + this.bglyh = bglyh;
  410 + }
  411 +
  412 + public Double getSh() {
  413 + return sh;
  414 + }
  415 +
  416 + public void setSh(Double sh) {
  417 + this.sh = sh;
  418 + }
  419 +
  420 + public String getRylx() {
  421 + return rylx;
  422 + }
  423 +
  424 + public void setRylx(String rylx) {
  425 + this.rylx = rylx;
  426 + }
  427 +
  428 + public Double getCzcd() {
  429 + return czcd;
  430 + }
  431 +
  432 + public void setCzcd(Double czcd) {
  433 + this.czcd = czcd;
  434 + }
  435 +
  436 + public Double getJzcd() {
  437 + return jzcd;
  438 + }
  439 +
  440 + public void setJzcd(Double jzcd) {
  441 + this.jzcd = jzcd;
  442 + }
  443 +
  444 + public Double getCdl() {
  445 + return cdl;
  446 + }
  447 +
  448 + public void setCdl(Double cdl) {
  449 + this.cdl = cdl;
  450 + }
  451 +
  452 + public Double getHd() {
  453 + return hd;
  454 + }
  455 +
  456 + public void setHd(Double hd) {
  457 + this.hd = hd;
  458 + }
  459 +
  460 + public Double getBgldh() {
  461 + return bgldh;
  462 + }
  463 +
  464 + public void setBgldh(Double bgldh) {
  465 + this.bgldh = bgldh;
  466 + }
  467 +
  468 + public Double getCzcq() {
  469 + return czcq;
  470 + }
  471 + public void setCzcq(Double czcq) {
  472 + this.czcq = czcq;
  473 + }
  474 + public Double getJzcq() {
  475 + return jzcq;
  476 + }
  477 + public void setJzcq(Double jzcq) {
  478 + this.jzcq = jzcq;
  479 + }
  480 + public Double getCql() {
  481 + return cql;
  482 + }
  483 + public void setCql(Double cql) {
  484 + this.cql = cql;
  485 + }
  486 + public Double getHq() {
  487 + return hq;
  488 + }
  489 + public void setHq(Double hq) {
  490 + this.hq = hq;
  491 + }
  492 + public Double getBglqh() {
  493 + return bglqh;
  494 + }
  495 + public void setBglqh(Double bglqh) {
  496 + this.bglqh = bglqh;
  497 + }
  498 + public int getTs() {
  499 + return ts;
  500 + }
  501 +
  502 + public void setTs(int ts) {
  503 + this.ts = ts;
  504 + }
  505 +
  506 + public Date getCreateTime() {
  507 + return createTime;
  508 + }
  509 + public void setCreateTime(Date createTime) {
  510 + this.createTime = createTime;
  511 + }
  512 + public Date getUpdateTime() {
  513 + return updateTime;
  514 + }
  515 + public void setUpdateTime(Date updateTime) {
  516 + this.updateTime = updateTime;
  517 + }
  518 +
  519 +
  520 +
  521 +}
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
@@ -13,6 +13,7 @@ import com.bsth.entity.calc.CalcStatistics; @@ -13,6 +13,7 @@ import com.bsth.entity.calc.CalcStatistics;
13 import com.bsth.entity.calc.CalcWaybill; 13 import com.bsth.entity.calc.CalcWaybill;
14 import com.bsth.entity.calc.CalcWaybillDetail; 14 import com.bsth.entity.calc.CalcWaybillDetail;
15 import com.bsth.entity.oil.Dlb; 15 import com.bsth.entity.oil.Dlb;
  16 +import com.bsth.entity.oil.Qlb;
16 import com.bsth.entity.oil.Ylb; 17 import com.bsth.entity.oil.Ylb;
17 import com.bsth.entity.realcontrol.ChildTaskPlan; 18 import com.bsth.entity.realcontrol.ChildTaskPlan;
18 import com.bsth.entity.realcontrol.ScheduleRealInfo; 19 import com.bsth.entity.realcontrol.ScheduleRealInfo;
@@ -2032,9 +2033,8 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer @@ -2032,9 +2033,8 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer
2032 return resList; 2033 return resList;
2033 } 2034 }
2034 Map<String,Ylb> ylbMap = new HashMap<>(); 2035 Map<String,Ylb> ylbMap = new HashMap<>();
2035 - Map<String,Ylb> ylbCLMap = new HashMap<>();  
2036 Map<String,Dlb> dlbMap = new HashMap<>(); 2036 Map<String,Dlb> dlbMap = new HashMap<>();
2037 - Map<String,Dlb> dlbCLMap = new HashMap<>(); 2037 + Map<String,Qlb> qlbMap = new HashMap<>();
2038 2038
2039 final SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); 2039 final SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
2040 2040
@@ -2059,6 +2059,9 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2059,6 +2059,9 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2059 // String dlSal= " SELECT id,xlbm,nbbm,jsy,cdl,czcd,jzcd,hd,sh,fgsdm FROM bsth_c_dlb" 2059 // String dlSal= " SELECT id,xlbm,nbbm,jsy,cdl,czcd,jzcd,hd,sh,fgsdm FROM bsth_c_dlb"
2060 + " WHERE rq >= '"+startDate+"' and rq <= '"+endDate+"' " 2060 + " WHERE rq >= '"+startDate+"' and rq <= '"+endDate+"' "
2061 + linesql; 2061 + linesql;
  2062 + String qlSal= " SELECT * FROM bsth_c_qlb"
  2063 + + " WHERE rq >= '"+startDate+"' and rq <= '"+endDate+"' "
  2064 + + linesql;
2062 List<Ylb> ylbList = jdbcTemplate.query(ylsql, new RowMapper<Ylb>() { 2065 List<Ylb> ylbList = jdbcTemplate.query(ylsql, new RowMapper<Ylb>() {
2063 @Override 2066 @Override
2064 public Ylb mapRow(ResultSet arg0, int arg1) throws SQLException{ 2067 public Ylb mapRow(ResultSet arg0, int arg1) throws SQLException{
@@ -2110,6 +2113,30 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2110,6 +2113,30 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2110 return dlb; 2113 return dlb;
2111 } 2114 }
2112 }); 2115 });
  2116 + List<Qlb> qlbList = jdbcTemplate.query(qlSal, new RowMapper<Qlb>() {
  2117 + @Override
  2118 + public Qlb mapRow(ResultSet arg0, int arg1) throws SQLException {
  2119 + Qlb qlb = new Qlb();Date rq = null;
  2120 + try{
  2121 + rq = ft.parse(arg0.getString("rq"));
  2122 + } catch (ParseException e){
  2123 + logger.error(e.toString(),e);
  2124 + }
  2125 + qlb.setXlbm(arg0.getString("xlbm"));
  2126 + qlb.setJsy(arg0.getString("jsy"));
  2127 + qlb.setJname(arg0.getString("jname"));
  2128 + qlb.setNbbm(arg0.getString("nbbm"));
  2129 + qlb.setZlc(Double.parseDouble(arg0.getString("zlc")));
  2130 + qlb.setJql(Double.parseDouble(arg0.getString("jql")));
  2131 + qlb.setJzcl(Double.parseDouble(arg0.getString("jzcl")));
  2132 + qlb.setCzcl(Double.parseDouble(arg0.getString("czcl")));
  2133 + qlb.setHn(Double.parseDouble(arg0.getString("hn")));
  2134 + qlb.setSh(Double.parseDouble(arg0.getString("sh")));
  2135 + qlb.setFgsdm(arg0.getString("fgsdm"));
  2136 + qlb.setRq(rq);
  2137 + return qlb;
  2138 + }
  2139 + });
2113 2140
2114 for (Ylb y:ylbList) { 2141 for (Ylb y:ylbList) {
2115 if(ylbMap.containsKey(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getJsy()+"_"+y.getNbbm())){ 2142 if(ylbMap.containsKey(y.getRq().getTime()+"_"+y.getXlbm()+"_"+y.getJsy()+"_"+y.getNbbm())){
@@ -2138,6 +2165,17 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2138,6 +2165,17 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2138 // dlbMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getJsy()+"_"+d.getJname()+"_"+d.getNbbm(),d); 2165 // dlbMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getJsy()+"_"+d.getJname()+"_"+d.getNbbm(),d);
2139 // dlbCLMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getNbbm(),d); 2166 // dlbCLMap.put(d.getRq().getTime()+"_"+d.getXlbm()+"_"+d.getNbbm(),d);
2140 } 2167 }
  2168 + for (Qlb q:qlbList) {
  2169 + if(qlbMap.containsKey(q.getRq().getTime()+"_"+q.getXlbm()+"_"+q.getJsy()+"_"+q.getNbbm())){
  2170 + Qlb qlb = qlbMap.get(q.getRq().getTime()+"_"+q.getXlbm()+"_"+q.getJsy()+"_"+q.getNbbm());
  2171 + qlb.setZlc(Arith.add(qlb.getZlc(),q.getZlc()));
  2172 + qlb.setHn(Arith.add(qlb.getHn(),q.getHn()));
  2173 + qlb.setCzcl(Arith.add(qlb.getCzcl(),q.getCzcl()));
  2174 + qlb.setJzcl(Arith.add(qlb.getJzcl(),q.getJzcl()));
  2175 + qlb.setJql(Arith.add(qlb.getJql(),q.getJql()));
  2176 + } else
  2177 + qlbMap.put(q.getRq().getTime()+"_"+q.getXlbm()+"_"+q.getJsy()+"_"+q.getNbbm(),q);
  2178 + }
2141 } 2179 }
2142 2180
2143 CalcWaybillDetail zjCalc = this.initCalcWaybillDetail(); 2181 CalcWaybillDetail zjCalc = this.initCalcWaybillDetail();
@@ -2160,6 +2198,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2160,6 +2198,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2160 2198
2161 Ylb y = new Ylb(); 2199 Ylb y = new Ylb();
2162 Dlb d = new Dlb(); 2200 Dlb d = new Dlb();
  2201 + Qlb q = new Qlb();
2163 // 统计类型不同统计的左边列不同 2202 // 统计类型不同统计的左边列不同
2164 // 赋值油、电量 2203 // 赋值油、电量
2165 if(flag != 2){ 2204 if(flag != 2){
@@ -2168,6 +2207,8 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2168,6 +2207,8 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2168 ylbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl()); 2207 ylbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
2169 d = dlbMap.get(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl()); 2208 d = dlbMap.get(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
2170 dlbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl()); 2209 dlbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
  2210 + q = qlbMap.get(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
  2211 + qlbMap.remove(cw.getRq().getTime()+"_"+cw.getXl()+"_"+cw.getjGh()+"_"+cw.getCl());
2171 if(y != null){ 2212 if(y != null){
2172 cw.setZlc(y.getZlc()); 2213 cw.setZlc(y.getZlc());
2173 cw.setYh(y.getYh()); 2214 cw.setYh(y.getYh());
@@ -2188,7 +2229,15 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2188,7 +2229,15 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2188 cw.setJzcd(d.getJzcd()); 2229 cw.setJzcd(d.getJzcd());
2189 cw.setCzcd(d.getCzcd()); 2230 cw.setCzcd(d.getCzcd());
2190 cw.setCdl(d.getCdl()); 2231 cw.setCdl(d.getCdl());
2191 - cw.setBglyh((d.getZlc()==0? 0:100*d.getHd()/d.getZlc())); 2232 + cw.setBgldh((d.getZlc()==0? 0:100*d.getHd()/d.getZlc()));
  2233 + }
  2234 + if(q != null) {
  2235 + cw.setZlc(q.getZlc());
  2236 + cw.setHq(q.getHn());
  2237 + cw.setJzcq(q.getJzcl());
  2238 + cw.setCzcq(q.getCzcl());
  2239 + cw.setCql(q.getJql());
  2240 + cw.setBglqh((q.getZlc()==0? 0:100*q.getHn()/q.getZlc()));
2192 } 2241 }
2193 } 2242 }
2194 2243
@@ -2307,7 +2356,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2307,7 +2356,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2307 for(int i=day; i<=day2; i++){ 2356 for(int i=day; i<=day2; i++){
2308 list1.add((i<10?"0"+i:i)+("m".equals(timeType)?"日":"月")); 2357 list1.add((i<10?"0"+i:i)+("m".equals(timeType)?"日":"月"));
2309 } 2358 }
2310 - if("bgldh".equals(itemDetails) || "bglyh".equals(itemDetails)){ 2359 + if("bglyh".equals(itemDetails) || "bgldh".equals(itemDetails) || "bglqh".equals(itemDetails)){
2311 list1.add("平均"); 2360 list1.add("平均");
2312 } else 2361 } else
2313 list1.add("合计"); 2362 list1.add("合计");
@@ -2317,7 +2366,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2317,7 +2366,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2317 List<Cars> carsList = carsRepository.findCars(); 2366 List<Cars> carsList = carsRepository.findCars();
2318 for (Cars c:carsList) { 2367 for (Cars c:carsList) {
2319 String sfdc = c.getSfdc()+""; 2368 String sfdc = c.getSfdc()+"";
2320 - carsMap.put(c.getInsideCode(), sfdc.equals("true")?"纯电动":"柴油"); 2369 + String sfmix = c.getSfmix()+"";
  2370 + String hydrogen = c.getHydrogen()+"";
  2371 + carsMap.put(c.getInsideCode(), "true".equals(hydrogen)?"氢能源"
  2372 + :"true".equals(sfmix)?"油电混合":sfdc.equals("true")?"纯电动":"柴油");
2321 } 2373 }
2322 2374
2323 int i=1; 2375 int i=1;
@@ -2357,8 +2409,6 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2357,8 +2409,6 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2357 listStr.add(df.format(c.getLjyylc()+c.getLjfyylc())); 2409 listStr.add(df.format(c.getLjyylc()+c.getLjfyylc()));
2358 listStr.add(df.format(c.getLblc())); 2410 listStr.add(df.format(c.getLblc()));
2359 listStr.add(c.getTs()+""); 2411 listStr.add(c.getTs()+"");
2360 - c.setBglhd(c.getBglhd()/c.getTs());  
2361 - c.setBglyh(c.getBglyh()/c.getTs());  
2362 // 把列合计的数添加到最后一个 2412 // 把列合计的数添加到最后一个
2363 cList.add(c); 2413 cList.add(c);
2364 // DecimalFormat df = new DecimalFormat("0.00");//格式化小数 2414 // DecimalFormat df = new DecimalFormat("0.00");//格式化小数
@@ -2390,7 +2440,16 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2390,7 +2440,16 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2390 listStr.add(df.format(c1.getJzcd())); 2440 listStr.add(df.format(c1.getJzcd()));
2391 } else if("bgldh".equals(itemDetails)){ 2441 } else if("bgldh".equals(itemDetails)){
2392 listStr.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc())); 2442 listStr.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc()));
2393 -// listStr.add(df.format(c1.getBglhd())); 2443 + } else if("qh".equals(itemDetails)){
  2444 + listStr.add(df.format(c1.getHq()));
  2445 + } else if("cql".equals(itemDetails)){
  2446 + listStr.add(df.format(c1.getCql()));
  2447 + } else if("cccq".equals(itemDetails)){
  2448 + listStr.add(df.format(c1.getCzcq()));
  2449 + } else if("jccq".equals(itemDetails)){
  2450 + listStr.add(df.format(c1.getJzcq()));
  2451 + } else if("bglqh".equals(itemDetails)){
  2452 + listStr.add(df.format(c1.getZlc()==0? 0:100*c1.getHq()/c1.getZlc()));
2394 } else if("zgl".equals(itemDetails)){ 2453 } else if("zgl".equals(itemDetails)){
2395 listStr.add(df.format((c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc()))); 2454 listStr.add(df.format((c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc())));
2396 } else if("jhgl".equals(itemDetails)){ 2455 } else if("jhgl".equals(itemDetails)){
@@ -2444,9 +2503,18 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2444,9 +2503,18 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2444 } else if("jccd".equals(itemDetails)){ 2503 } else if("jccd".equals(itemDetails)){
2445 listEnd.add(df.format(c1.getJzcd())); 2504 listEnd.add(df.format(c1.getJzcd()));
2446 } else if("bgldh".equals(itemDetails)){ 2505 } else if("bgldh".equals(itemDetails)){
2447 -// listEnd.add(df.format(c1.getBglhd()));  
2448 listEnd.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc())); 2506 listEnd.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc()));
2449 - } else if("zgl".equals(itemDetails)){ 2507 + } else if("qh".equals(itemDetails)){
  2508 + listEnd.add(df.format(c1.getHq()));
  2509 + } else if("cql".equals(itemDetails)){
  2510 + listEnd.add(df.format(c1.getCql()));
  2511 + } else if("cccq".equals(itemDetails)){
  2512 + listEnd.add(df.format(c1.getCzcq()));
  2513 + } else if("jccq".equals(itemDetails)){
  2514 + listEnd.add(df.format(c1.getJzcq()));
  2515 + } else if("bglqh".equals(itemDetails)){
  2516 + listEnd.add(df.format(c1.getZlc()==0? 0:100*c1.getHq()/c1.getZlc()));
  2517 + } else if("zgl".equals(itemDetails)){
2450 listEnd.add((df.format(c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc()))); 2518 listEnd.add((df.format(c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc())));
2451 } else if("jhgl".equals(itemDetails)){ 2519 } else if("jhgl".equals(itemDetails)){
2452 listEnd.add((df.format(c1.getJhyylc()+c1.getJhfyylc()))); 2520 listEnd.add((df.format(c1.getJhyylc()+c1.getJhfyylc())));
@@ -2460,7 +2528,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2460,7 +2528,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2460 } 2528 }
2461 2529
2462 // 百公里电油耗时为平均数 2530 // 百公里电油耗时为平均数
2463 - if("bgldh".equals(itemDetails) || "bglyh".equals(itemDetails)){ 2531 + if("bglyh".equals(itemDetails) || "bgldh".equals(itemDetails) || "bglqh".equals(itemDetails)){
2464 allNum = allNum/keyMap.size(); 2532 allNum = allNum/keyMap.size();
2465 all = all/dayList.size(); 2533 all = all/dayList.size();
2466 } 2534 }
@@ -2496,6 +2564,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2496,6 +2564,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2496 calc.setJzcd(0d); 2564 calc.setJzcd(0d);
2497 calc.setCdl(0d); 2565 calc.setCdl(0d);
2498 calc.setHd(0d); 2566 calc.setHd(0d);
  2567 + calc.setCzcq(0d);
  2568 + calc.setJzcq(0d);
  2569 + calc.setCql(0d);
  2570 + calc.setHq(0d);
2499 calc.setTs(0); 2571 calc.setTs(0);
2500 return calc; 2572 return calc;
2501 } 2573 }
@@ -2527,6 +2599,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer @@ -2527,6 +2599,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
2527 c1.setCzcd(Arith.add(c1.getCzcd(),c2.getCzcd())); 2599 c1.setCzcd(Arith.add(c1.getCzcd(),c2.getCzcd()));
2528 c1.setJzcd(Arith.add(c1.getJzcd(),c2.getJzcd())); 2600 c1.setJzcd(Arith.add(c1.getJzcd(),c2.getJzcd()));
2529 c1.setCdl(Arith.add(c1.getCdl(),c2.getCdl())); 2601 c1.setCdl(Arith.add(c1.getCdl(),c2.getCdl()));
  2602 + c1.setHq(Arith.add(c1.getHq(),c2.getHq()));
  2603 + c1.setCzcq(Arith.add(c1.getCzcq(),c2.getCzcq()));
  2604 + c1.setJzcq(Arith.add(c1.getJzcq(),c2.getJzcq()));
  2605 + c1.setCql(Arith.add(c1.getCql(),c2.getCql()));
2530 c1.setTs(c1.getTs()+c2.getTs()); 2606 c1.setTs(c1.getTs()+c2.getTs());
2531 // c1.setDtbc(c1.getDtbc() + c2.getDtbc()); 2607 // c1.setDtbc(c1.getDtbc() + c2.getDtbc());
2532 return c1; 2608 return c1;
src/main/resources/static/pages/forms/calc/calcDetailMonthly.html
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: 620px;  
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:580px;  
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: 13px;" 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: 150px;"></select>  
67 - </div>  
68 - <div style="display: inline-block; margin-left: 13px;" id="fgsdmDiv_daily">  
69 - <span class="item-label" style="width: 80px;">&#12288;分公司: </span>  
70 - <select class="form-control" name="fgsdm" id="fgsdm" style="width: 150px;"></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 - <div style="display: inline-block;margin-left: 13px;" class="date-picker">  
77 - <span class="item-label" style="width: 80px;">&#12288;&#12288;时间: </span>  
78 - <input class="form-control" type="text" id="startDate" style="width: 150px;" /> -  
79 - <input class="form-control" type="text" id="endDate" style="width: 150px;" />  
80 - <!--<input class="form-control" type="text" id="startDate" style="width: 180px;" value="2020-10-01"/> - -->  
81 - <!--<input class="form-control" type="text" id="endDate" style="width: 180px;" value="2020-10-10"/>-->  
82 - </div>  
83 -  
84 - <div style="margin-top: 2px"></div>  
85 -  
86 - <div style="display: inline-block; margin-left: 13px;">  
87 - <span class="item-label" style="width: 80px;">线路性质: </span>  
88 - <select class="form-control" name="destroy" id="destroy" style="width: 150px;">  
89 - <option value="0,1">全部线路</option>  
90 - <option value="0">营运线路</option>  
91 - <option value="1">非营运线路</option>  
92 - </select>  
93 - </div>  
94 - <div style="display: inline-block;margin-left: 13px;">  
95 - <span class="item-label" style="width: 80px;">统计对象: </span>  
96 - <select class="form-control" name="statisticalObj" id="statisticalObj" style="width: 150px;">  
97 - <option value="cl">车辆</option>  
98 - <option value="jsy">驾驶员</option>  
99 - <option value="cwy">乘务员</option>  
100 - <option value="xl">线路</option>  
101 - </select>  
102 - </div>  
103 -  
104 - <div style="display: inline-block; margin-left: 13px;" >  
105 - <span class="item-label" style="width: 80px;">统计项目: </span>  
106 - <select class="form-control" name="statisticalItem" id="statisticalItem" style="width: 150px;">  
107 - <option value="yh">油耗</option>  
108 - <option value="dh">电耗</option>  
109 - <option value="gl">公里</option>  
110 - <option value="bc">班次</option>  
111 - </select>  
112 - </div>  
113 - <div style="display: inline-block; margin-left: 13px;" >  
114 - <span class="item-label" style="width: 80px;">项目明细: </span>  
115 - <select class="form-control" name="itemDetails" id="itemDetails" style="width: 150px;"></select>  
116 - </div>  
117 - <div class="form-group" style="display: inline-block;margin-left: 22px;">  
118 - <input class="btn btn-default" type="button" id="query" value="筛选"/>  
119 - <input class="btn btn-default" type="button" id="export" value="导出"/>  
120 - </div>  
121 - </form>  
122 - </div>  
123 -  
124 - <div id="analy_body">  
125 - <div class="table_head" id="table_head">  
126 - <table class="table table-bordered table-hover table-checkable " id="forms_head">  
127 - <thead>  
128 - </thead>  
129 - </table>  
130 - </div>  
131 - <div class="table_body" id="table_body">  
132 - <table class="table table-bordered table-hover table-checkable" id="forms_body" style="background-color: white;">  
133 - <tbody>  
134 - </tbody>  
135 - </table>  
136 - </div>  
137 - </div>  
138 -</div>  
139 -<script >  
140 - $(function(){  
141 - $('#export').attr('disabled', "true");  
142 - // 关闭左侧栏  
143 - if (!$('body').hasClass('page-sidebar-closed'))  
144 - $('.menu-toggler.sidebar-toggler').click();  
145 -  
146 - var table_body1 = document.getElementById("table_body");  
147 - table_body1.onscroll = function(){  
148 - var table_body1_left = this.scrollLeft;  
149 - document.getElementById("table_head").scrollLeft = table_body1_left;  
150 - };  
151 -  
152 - var d = new Date();  
153 - d.setTime(d.getTime() - 4*1000*60*60*24);//只能查4天以前的数据  
154 - var year = d.getFullYear();  
155 - var month = d.getMonth() + 1;  
156 - var day = d.getDate();  
157 - if(month < 10)  
158 - month = "0" + month;  
159 - if(day < 10)  
160 - day = "0" + day;  
161 - //时间  
162 - var dateTime=year + "-" + month + "-" + day;  
163 - $("#startDate").val(dateTime);  
164 - $("#endDate").val(dateTime);  
165 -  
166 - $("#endDate").datetimepicker({  
167 - format : 'YYYY-MM-DD',  
168 - locale : 'zh-cn',  
169 - maxDate : dateTime  
170 - });  
171 - $("#startDate").datetimepicker({  
172 - format : 'YYYY-MM-DD',  
173 - locale : 'zh-cn',  
174 - maxDate : dateTime  
175 - });  
176 -  
177 - var lineAll="";  
178 - var datas = {}; //查询条件  
179 -  
180 - /**用户分配的线路*/  
181 - $.get('/realControAuthority/findByCurrentUser', function (userAuthor) {  
182 - lineAll = userAuthor.lineCodeStr.substring(0,userAuthor.lineCodeStr.length-1);  
183 - });  
184 -  
185 - var tempData = {};  
186 -  
187 - $.get('/user/companyData', function(result){  
188 - var obj = result;  
189 - var options = '';  
190 - for(var i = 0; i < obj.length; i++){  
191 - options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';  
192 - }  
193 -  
194 - if(obj.length ==0){  
195 - $("#gsdmDiv_daily").css('display','none');  
196 - }else if(obj.length ==1){  
197 - $("#gsdmDiv_daily").css('display','none');  
198 - if(obj[0].children.length == 1 || obj[0].children.length == 0){  
199 - fage=false;  
200 - $('#gsdmDiv_daily').css('display','none');  
201 - }  
202 - }  
203 - $('#gsdm').html(options);  
204 - updateCompany();  
205 - });  
206 - $("#gsdm").on("change",updateCompany);  
207 -  
208 - function updateCompany(){  
209 - var company = $('#gsdm').val();  
210 - $.get('/user/companyData', function(obj) {  
211 - var option = '';  
212 - var allC = "";  
213 - for (var i = 0; i < obj.length; i++) {  
214 - if (obj[i].companyCode == company) {  
215 - var children = obj[i].children;  
216 - for (var j = 0; j < children.length; j++) {  
217 - allC += children[j].code+",";  
218 - option += '<option value="' + children[j].code + '">' + children[j].name + '</option>';  
219 - }  
220 - }  
221 - }  
222 -  
223 - var options = '<option value="'+allC.substring(0,allC.length-1)+'">所有分公司</option>'+option;  
224 - $('#fgsdm').html(options);  
225 - });  
226 - }  
227 -  
228 - // 项目明细选项列  
229 - // 触发默认选项  
230 - updateItem();  
231 - $("#statisticalItem").on("change",updateItem);  
232 - function updateItem() {  
233 - var item = $('#statisticalItem').val();  
234 - var options = '';  
235 - if(item == "yh"){  
236 - options += '<option value="jzlAll">加注量[全部]</option>' +  
237 - '<option value="jzl0">加注量[0#]</option>'+  
238 - '<option value="jzl-10">加注量[-10#]</option>'+  
239 - '<option value="yhl">油耗量</option>'+  
240 - '<option value="cccy">出场存油</option>'+  
241 - '<option value="jccy">进场存油</option>'+  
242 - '<option value="bglyh">百公里油耗</option>';  
243 - } else if(item == "gl"){  
244 - options += '<option value="zgl">总公里</option>' +  
245 - '<option value="jhgl">计划公里</option>';  
246 - /*'<option value="jclm">进场路码</option>'+  
247 - '<option value="cclm">出场路码</option>'*/  
248 - } else if(item == "bc"){  
249 - options += '<option value="sjbc">实际班次</option>' +  
250 - '<option value="jhbc">计划班次</option>';  
251 - } else if(item == "dh"){  
252 - options += '<option value="dh">耗电量</option>';  
253 - options += '<option value="cdl">充电量</option>';  
254 - options += '<option value="cccd">出场存电</option>';  
255 - options += '<option value="jccd">进场存电</option>';  
256 - options += '<option value="bgldh">百公里电耗</option>';  
257 - }  
258 - $('#itemDetails').html(options);  
259 - }  
260 -  
261 - //线路名称  
262 - var lineName = '';  
263 - $("#query").on("click",function(){  
264 - var gsdm = $("#gsdm").val();  
265 - var fgsdm = $("#fgsdm").val();  
266 - var startDate = $("#startDate").val();  
267 - var endDate = $("#endDate").val();  
268 - var statisticalObj = $("#statisticalObj").val();  
269 - //开始和结束时间  
270 - var startTime = Date.parse(new Date(startDate));  
271 - var endTime = Date.parse(new Date(endDate));  
272 -  
273 - datas = {}; // 清空之前数据  
274 - datas.gsdm = gsdm;  
275 - datas.fgsdm = fgsdm;  
276 - datas.lineCode = lineAll;  
277 - datas.timeType = "m";  
278 - datas.startDate = startDate;  
279 - datas.endDate = endDate;  
280 - datas.destroy = $("#destroy").val();  
281 - datas.statisticalObj = $("#statisticalObj").val();  
282 - datas.itemDetails = $("#itemDetails").val();  
283 - var itemDetails = datas.itemDetails,  
284 - type = "加注量[全部]";  
285 - if(itemDetails=="jzl0"){  
286 - type = "加注量[0#]"  
287 - } else if(itemDetails=="jzl-10"){  
288 - type = "加注量[-10#]"  
289 - } else if(itemDetails=="yhl"){  
290 - type = "油耗量"  
291 - } else if(itemDetails=="cccy"){  
292 - type = "出场存油"  
293 - } else if(itemDetails=="jccy"){  
294 - type = "进场存油"  
295 - } else if(itemDetails=="bglyh"){  
296 - type = "百公里油耗"  
297 - } else if(itemDetails=="zgl"){  
298 - type = "总公里"  
299 - } else if(itemDetails=="jhgl"){  
300 - type = "计划公里"  
301 - } else if(itemDetails=="jclm"){  
302 - type = "进场路码"  
303 - } else if(itemDetails=="cclm"){  
304 - type = "出场路码"  
305 - } else if(itemDetails=="sjbc"){  
306 - type = "实际班次"  
307 - } else if(itemDetails=="jhbc"){  
308 - type = "计划班次"  
309 - } else if(itemDetails=="dh"){  
310 - type = "耗电量"  
311 - } else if(itemDetails=="cdl"){  
312 - type = "充电量"  
313 - } else if(itemDetails=="cccd"){  
314 - type = "出场存电"  
315 - } else if(itemDetails=="jccd"){  
316 - type = "进场存电"  
317 - } else if(itemDetails=="bgldh"){  
318 - type = "百公里电耗"  
319 - }  
320 - datas.name = datas.startDate+"-"+datas.endDate+"-路单线路明细月报表("+type+")";  
321 - if(startDate==null || startDate =="" ||endDate==null || endDate ==""){  
322 - layer.msg('请选择时间段!');  
323 - }else if(endTime<startTime){  
324 - layer.msg('结束日期不能小于开始日期!');  
325 - }else {  
326 - if (endDate.substring(0, 7) != startDate.substring(0, 7)) {  
327 - layer.msg("请查询同月份数据!");  
328 - return;  
329 - } else {  
330 - var lodingI = layer.load(2);  
331 - $get('/calcWaybill/calcDetailMonthly', datas, function (rs) {  
332 - if (rs.length <=0) {  
333 - layer.close(lodingI);  
334 - layer.open({  
335 - title: '提示'  
336 - , content: '没有您要查询的数据,请重新选择参数!'  
337 - });  
338 - $("#export").attr('disabled',"true");  
339 - return;  
340 - }else  
341 - $("#export").removeAttr("disabled");  
342 - var htmlHead = "<tr><td colspan='"+rs[0].length+"'>"+datas.name+"</td></tr>", htmlBody = "";  
343 - var rsLength = rs.length;  
344 - rs.forEach(function (o, i) {  
345 - var html = "<tr>"  
346 - o.forEach(function (td, j) {  
347 - var colspan;  
348 - if (i == rsLength - 1 && j == 0) {  
349 - colspan = (statisticalObj == "xl" ? "colspan='3'" : "colspan='5'");  
350 - if(statisticalObj == "cl")  
351 - colspan = "colspan='6'";  
352 - }  
353 - html += "<td " + colspan + ">" + td + "</td>"  
354 - });  
355 - html += "</tr>"  
356 - if (i == 0) {  
357 - htmlHead += html;  
358 - } else  
359 - htmlBody += html;  
360 - });  
361 - $('#forms_head thead').html(htmlHead);  
362 - $('#forms_body tbody').html(htmlBody);  
363 - layer.close(lodingI);  
364 - });  
365 - }  
366 - }  
367 - });  
368 -  
369 - $("#export").on("click",function(){  
370 - $post("/report/calcDetailMonthlyE",datas,function(result){  
371 - window.open("/downloadFile/download?fileName="+datas.name);  
372 - });  
373 - });  
374 - });  
375 -</script>  
376 -<!--<script type="application/javascript" src="/pages/forms/calc/calcDetailMonthly.js"></script>--> 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: 620px;
  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:580px;
  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: 13px;" 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: 150px;"></select>
  67 + </div>
  68 + <div style="display: inline-block; margin-left: 13px;" id="fgsdmDiv_daily">
  69 + <span class="item-label" style="width: 80px;">&#12288;分公司: </span>
  70 + <select class="form-control" name="fgsdm" id="fgsdm" style="width: 150px;"></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 + <div style="display: inline-block;margin-left: 13px;" class="date-picker">
  77 + <span class="item-label" style="width: 80px;">&#12288;&#12288;时间: </span>
  78 + <input class="form-control" type="text" id="startDate" style="width: 150px;" /> -
  79 + <input class="form-control" type="text" id="endDate" style="width: 150px;" />
  80 + <!--<input class="form-control" type="text" id="startDate" style="width: 180px;" value="2020-10-01"/> - -->
  81 + <!--<input class="form-control" type="text" id="endDate" style="width: 180px;" value="2020-10-10"/>-->
  82 + </div>
  83 +
  84 + <div style="margin-top: 2px"></div>
  85 +
  86 + <div style="display: inline-block; margin-left: 13px;">
  87 + <span class="item-label" style="width: 80px;">线路性质: </span>
  88 + <select class="form-control" name="destroy" id="destroy" style="width: 150px;">
  89 + <option value="0,1">全部线路</option>
  90 + <option value="0">营运线路</option>
  91 + <option value="1">非营运线路</option>
  92 + </select>
  93 + </div>
  94 + <div style="display: inline-block;margin-left: 13px;">
  95 + <span class="item-label" style="width: 80px;">统计对象: </span>
  96 + <select class="form-control" name="statisticalObj" id="statisticalObj" style="width: 150px;">
  97 + <option value="cl">车辆</option>
  98 + <option value="jsy">驾驶员</option>
  99 + <option value="cwy">乘务员</option>
  100 + <option value="xl">线路</option>
  101 + </select>
  102 + </div>
  103 +
  104 + <div style="display: inline-block; margin-left: 13px;" >
  105 + <span class="item-label" style="width: 80px;">统计项目: </span>
  106 + <select class="form-control" name="statisticalItem" id="statisticalItem" style="width: 150px;">
  107 + <option value="yh">油耗</option>
  108 + <option value="dh">电耗</option>
  109 + <option value="qh">氢耗</option>
  110 + <option value="gl">公里</option>
  111 + <option value="bc">班次</option>
  112 + </select>
  113 + </div>
  114 + <div style="display: inline-block; margin-left: 13px;" >
  115 + <span class="item-label" style="width: 80px;">项目明细: </span>
  116 + <select class="form-control" name="itemDetails" id="itemDetails" style="width: 150px;"></select>
  117 + </div>
  118 + <div class="form-group" style="display: inline-block;margin-left: 22px;">
  119 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  120 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  121 + </div>
  122 + </form>
  123 + </div>
  124 +
  125 + <div id="analy_body">
  126 + <div class="table_head" id="table_head">
  127 + <table class="table table-bordered table-hover table-checkable " id="forms_head">
  128 + <thead>
  129 + </thead>
  130 + </table>
  131 + </div>
  132 + <div class="table_body" id="table_body">
  133 + <table class="table table-bordered table-hover table-checkable" id="forms_body">
  134 + <tbody>
  135 + </tbody>
  136 + </table>
  137 + </div>
  138 + </div>
  139 +</div>
  140 +<script >
  141 + $(function(){
  142 + $('#export').attr('disabled', "true");
  143 + // 关闭左侧栏
  144 + if (!$('body').hasClass('page-sidebar-closed'))
  145 + $('.menu-toggler.sidebar-toggler').click();
  146 +
  147 + var table_body1 = document.getElementById("table_body");
  148 + table_body1.onscroll = function(){
  149 + var table_body1_left = this.scrollLeft;
  150 + document.getElementById("table_head").scrollLeft = table_body1_left;
  151 + };
  152 +
  153 + var d = new Date();
  154 + d.setTime(d.getTime() - 4*1000*60*60*24);//只能查4天以前的数据
  155 + var year = d.getFullYear();
  156 + var month = d.getMonth() + 1;
  157 + var day = d.getDate();
  158 + if(month < 10)
  159 + month = "0" + month;
  160 + if(day < 10)
  161 + day = "0" + day;
  162 + //时间
  163 + var dateTime=year + "-" + month + "-" + day;
  164 + $("#startDate").val(dateTime);
  165 + $("#endDate").val(dateTime);
  166 +
  167 + $("#endDate").datetimepicker({
  168 + format : 'YYYY-MM-DD',
  169 + locale : 'zh-cn',
  170 + maxDate : dateTime
  171 + });
  172 + $("#startDate").datetimepicker({
  173 + format : 'YYYY-MM-DD',
  174 + locale : 'zh-cn',
  175 + maxDate : dateTime
  176 + });
  177 +
  178 + var lineAll="";
  179 + var datas = {}; //查询条件
  180 +
  181 + /**用户分配的线路*/
  182 + $.get('/realControAuthority/findByCurrentUser', function (userAuthor) {
  183 + lineAll = userAuthor.lineCodeStr.substring(0,userAuthor.lineCodeStr.length-1);
  184 + });
  185 +
  186 + var tempData = {};
  187 +
  188 + $.get('/user/companyData', function(result){
  189 + var obj = result;
  190 + var options = '';
  191 + for(var i = 0; i < obj.length; i++){
  192 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  193 + }
  194 +
  195 + if(obj.length ==0){
  196 + $("#gsdmDiv_daily").css('display','none');
  197 + }else if(obj.length ==1){
  198 + $("#gsdmDiv_daily").css('display','none');
  199 + if(obj[0].children.length == 1 || obj[0].children.length == 0){
  200 + fage=false;
  201 + $('#gsdmDiv_daily').css('display','none');
  202 + }
  203 + }
  204 + $('#gsdm').html(options);
  205 + updateCompany();
  206 + });
  207 + $("#gsdm").on("change",updateCompany);
  208 +
  209 + function updateCompany(){
  210 + var company = $('#gsdm').val();
  211 + $.get('/user/companyData', function(obj) {
  212 + var option = '';
  213 + var allC = "";
  214 + for (var i = 0; i < obj.length; i++) {
  215 + if (obj[i].companyCode == company) {
  216 + var children = obj[i].children;
  217 + for (var j = 0; j < children.length; j++) {
  218 + allC += children[j].code+",";
  219 + option += '<option value="' + children[j].code + '">' + children[j].name + '</option>';
  220 + }
  221 + }
  222 + }
  223 +
  224 + var options = '<option value="'+allC.substring(0,allC.length-1)+'">所有分公司</option>'+option;
  225 + $('#fgsdm').html(options);
  226 + });
  227 + }
  228 +
  229 + // 项目明细选项列
  230 + // 触发默认选项
  231 + updateItem();
  232 + $("#statisticalItem").on("change",updateItem);
  233 + function updateItem() {
  234 + var item = $('#statisticalItem').val();
  235 + var options = '';
  236 + if(item == "yh"){
  237 + options += '<option value="jzlAll">加注量[全部]</option>' +
  238 + '<option value="jzl0">加注量[0#]</option>'+
  239 + '<option value="jzl-10">加注量[-10#]</option>'+
  240 + '<option value="yhl">油耗量</option>'+
  241 + '<option value="cccy">出场存油</option>'+
  242 + '<option value="jccy">进场存油</option>'+
  243 + '<option value="bglyh">百公里油耗</option>';
  244 + } else if(item == "gl"){
  245 + options += '<option value="zgl">总公里</option>' +
  246 + '<option value="jhgl">计划公里</option>';
  247 + /*'<option value="jclm">进场路码</option>'+
  248 + '<option value="cclm">出场路码</option>'*/
  249 + } else if(item == "bc"){
  250 + options += '<option value="sjbc">实际班次</option>' +
  251 + '<option value="jhbc">计划班次</option>';
  252 + } else if(item == "dh"){
  253 + options += '<option value="dh">耗电量</option>';
  254 + options += '<option value="cdl">充电量</option>';
  255 + options += '<option value="cccd">出场存电</option>';
  256 + options += '<option value="jccd">进场存电</option>';
  257 + options += '<option value="bgldh">百公里电耗</option>';
  258 + } else if(item == "qh"){
  259 + options += '<option value="qh">耗氢量</option>';
  260 + options += '<option value="cql">充氢量</option>';
  261 + options += '<option value="cccq">出场存氢</option>';
  262 + options += '<option value="jccq">进场存氢</option>';
  263 + options += '<option value="bglqh">百公里氢耗</option>';
  264 + }
  265 + $('#itemDetails').html(options);
  266 + }
  267 +
  268 + //线路名称
  269 + var lineName = '';
  270 + $("#query").on("click",function(){
  271 + var gsdm = $("#gsdm").val();
  272 + var fgsdm = $("#fgsdm").val();
  273 + var startDate = $("#startDate").val();
  274 + var endDate = $("#endDate").val();
  275 + var statisticalObj = $("#statisticalObj").val();
  276 + //开始和结束时间
  277 + var startTime = Date.parse(new Date(startDate));
  278 + var endTime = Date.parse(new Date(endDate));
  279 +
  280 + datas = {}; // 清空之前数据
  281 + datas.gsdm = gsdm;
  282 + datas.fgsdm = fgsdm;
  283 + datas.lineCode = lineAll;
  284 + datas.timeType = "m";
  285 + datas.startDate = startDate;
  286 + datas.endDate = endDate;
  287 + datas.destroy = $("#destroy").val();
  288 + datas.statisticalObj = $("#statisticalObj").val();
  289 + datas.itemDetails = $("#itemDetails").val();
  290 + var itemDetails = datas.itemDetails,
  291 + type = "加注量[全部]";
  292 + if(itemDetails=="jzl0"){
  293 + type = "加注量[0#]"
  294 + } else if(itemDetails=="jzl-10"){
  295 + type = "加注量[-10#]"
  296 + } else if(itemDetails=="yhl"){
  297 + type = "油耗量"
  298 + } else if(itemDetails=="cccy"){
  299 + type = "出场存油"
  300 + } else if(itemDetails=="jccy"){
  301 + type = "进场存油"
  302 + } else if(itemDetails=="bglyh"){
  303 + type = "百公里油耗"
  304 + } else if(itemDetails=="zgl"){
  305 + type = "总公里"
  306 + } else if(itemDetails=="jhgl"){
  307 + type = "计划公里"
  308 + } else if(itemDetails=="jclm"){
  309 + type = "进场路码"
  310 + } else if(itemDetails=="cclm"){
  311 + type = "出场路码"
  312 + } else if(itemDetails=="sjbc"){
  313 + type = "实际班次"
  314 + } else if(itemDetails=="jhbc"){
  315 + type = "计划班次"
  316 + } else if(itemDetails=="dh"){
  317 + type = "耗电量"
  318 + } else if(itemDetails=="cdl"){
  319 + type = "充电量"
  320 + } else if(itemDetails=="cccd"){
  321 + type = "出场存电"
  322 + } else if(itemDetails=="jccd"){
  323 + type = "进场存电"
  324 + } else if(itemDetails=="bgldh"){
  325 + type = "百公里电耗"
  326 + } else if(itemDetails=="qh"){
  327 + type = "耗氢量"
  328 + } else if(itemDetails=="cql"){
  329 + type = "充氢量"
  330 + } else if(itemDetails=="cccq"){
  331 + type = "出场存氢"
  332 + } else if(itemDetails=="jccq"){
  333 + type = "进场存氢"
  334 + } else if(itemDetails=="bglqh"){
  335 + type = "百公里氢耗"
  336 + }
  337 + datas.name = datas.startDate+"-"+datas.endDate+"-路单线路明细月报表("+type+")";
  338 + if(startDate==null || startDate =="" ||endDate==null || endDate ==""){
  339 + layer.msg('请选择时间段!');
  340 + }else if(endTime<startTime){
  341 + layer.msg('结束日期不能小于开始日期!');
  342 + }else {
  343 + if (endDate.substring(0, 7) != startDate.substring(0, 7)) {
  344 + layer.msg("请查询同月份数据!");
  345 + return;
  346 + } else {
  347 + var lodingI = layer.load(2);
  348 + $get('/calcWaybill/calcDetailMonthly', datas, function (rs) {
  349 + if (rs.length <=0) {
  350 + layer.close(lodingI);
  351 + layer.open({
  352 + title: '提示'
  353 + , content: '没有您要查询的数据,请重新选择参数!'
  354 + });
  355 + $("#export").attr('disabled',"true");
  356 + return;
  357 + }else
  358 + $("#export").removeAttr("disabled");
  359 + var htmlHead = "<tr><td colspan='"+rs[0].length+"'>"+datas.name+"</td></tr>", htmlBody = "";
  360 + var rsLength = rs.length;
  361 + rs.forEach(function (o, i) {
  362 + var html = "<tr>"
  363 + o.forEach(function (td, j) {
  364 + var colspan;
  365 + if (i == rsLength - 1 && j == 0) {
  366 + colspan = (statisticalObj == "xl" ? "colspan='3'" : "colspan='5'");
  367 + if(statisticalObj == "cl")
  368 + colspan = "colspan='6'";
  369 + }
  370 + html += "<td " + colspan + ">" + td + "</td>"
  371 + });
  372 + html += "</tr>"
  373 + if (i == 0) {
  374 + htmlHead += html;
  375 + } else
  376 + htmlBody += html;
  377 + });
  378 + $('#forms_head thead').html(htmlHead);
  379 + $('#forms_body tbody').html(htmlBody);
  380 + layer.close(lodingI);
  381 + });
  382 + }
  383 + }
  384 + });
  385 +
  386 + $("#export").on("click",function(){
  387 + $post("/report/calcDetailMonthlyE",datas,function(result){
  388 + window.open("/downloadFile/download?fileName="+datas.name);
  389 + });
  390 + });
  391 + });
  392 +</script>
  393 +<!--<script type="application/javascript" src="/pages/forms/calc/calcDetailMonthly.js"></script>-->
src/main/resources/static/pages/forms/calc/calcDetailYear.html
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: 620px;  
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:580px;  
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: 13px;" 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: 150px;"></select>  
67 - </div>  
68 - <div style="display: inline-block; margin-left: 13px;" id="fgsdmDiv_daily">  
69 - <span class="item-label" style="width: 80px;">&#12288;分公司: </span>  
70 - <select class="form-control" name="fgsdm" id="fgsdm" style="width: 150px;"></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 - <div style="display: inline-block;margin-left: 13px;" class="date-picker">  
77 - <span class="item-label" style="width: 80px;">&#12288;&#12288;时间: </span>  
78 - <input class="form-control" type="text" id="startDate" style="width: 150px;" /> -  
79 - <input class="form-control" type="text" id="endDate" style="width: 150px;" />  
80 - <!--<input class="form-control" type="text" id="startDate" style="width: 180px;" value="2020-10-01"/> - -->  
81 - <!--<input class="form-control" type="text" id="endDate" style="width: 180px;" value="2020-10-10"/>-->  
82 - </div>  
83 -  
84 - <div style="margin-top: 2px"></div>  
85 -  
86 - <div style="display: inline-block; margin-left: 13px;">  
87 - <span class="item-label" style="width: 80px;">线路性质: </span>  
88 - <select class="form-control" name="destroy" id="destroy" style="width: 150px;">  
89 - <option value="0,1">全部线路</option>  
90 - <option value="0">营运线路</option>  
91 - <option value="1">非营运线路</option>  
92 - </select>  
93 - </div>  
94 - <div style="display: inline-block;margin-left: 13px;">  
95 - <span class="item-label" style="width: 80px;">统计对象: </span>  
96 - <select class="form-control" name="statisticalObj" id="statisticalObj" style="width: 150px;">  
97 - <option value="cl">车辆</option>  
98 - <option value="jsy">驾驶员</option>  
99 - <option value="cwy">乘务员</option>  
100 - <option value="xl">线路</option>  
101 - </select>  
102 - </div>  
103 -  
104 - <div style="display: inline-block; margin-left: 13px;" >  
105 - <span class="item-label" style="width: 80px;">统计项目: </span>  
106 - <select class="form-control" name="statisticalItem" id="statisticalItem" style="width: 150px;">  
107 - <option value="yh">油耗</option>  
108 - <option value="dh">电耗</option>  
109 - <option value="gl">公里</option>  
110 - <option value="bc">班次</option>  
111 - </select>  
112 - </div>  
113 - <div style="display: inline-block; margin-left: 13px;" >  
114 - <span class="item-label" style="width: 80px;">项目明细: </span>  
115 - <select class="form-control" name="itemDetails" id="itemDetails" style="width: 150px;"></select>  
116 - </div>  
117 - <div class="form-group" style="display: inline-block;margin-left: 22px;">  
118 - <input class="btn btn-default" type="button" id="query" value="筛选"/>  
119 - <input class="btn btn-default" type="button" id="export" value="导出"/>  
120 - </div>  
121 - </form>  
122 - </div>  
123 -  
124 - <div id="analy_body">  
125 - <div class="table_head" id="table_head">  
126 - <table class="table table-bordered table-hover table-checkable " id="forms_head">  
127 - <thead>  
128 - </thead>  
129 - </table>  
130 - </div>  
131 - <div class="table_body" id="table_body">  
132 - <table class="table table-bordered table-hover table-checkable" id="forms_body" style="background-color: white;">  
133 - <tbody>  
134 - </tbody>  
135 - </table>  
136 - </div>  
137 - </div>  
138 -</div>  
139 -<script >  
140 - $(function(){  
141 - $('#export').attr('disabled', "true");  
142 - // 关闭左侧栏  
143 - if (!$('body').hasClass('page-sidebar-closed'))  
144 - $('.menu-toggler.sidebar-toggler').click();  
145 -  
146 - var table_body1 = document.getElementById("table_body");  
147 - table_body1.onscroll = function(){  
148 - var table_body1_left = this.scrollLeft;  
149 - document.getElementById("table_head").scrollLeft = table_body1_left;  
150 - };  
151 -  
152 - var d = new Date();  
153 - var year = d.getFullYear();  
154 - var month = d.getMonth() + 1;  
155 - if(month < 10)  
156 - month = "0" + month;  
157 - //时间  
158 - var dateTime=year + "-" + month;  
159 - $("#startDate").val(dateTime);  
160 - $("#endDate").val(dateTime);  
161 -  
162 - $("#endDate").datetimepicker({  
163 - format : 'YYYY-MM',  
164 - locale : 'zh-cn',  
165 - maxDate : dateTime  
166 - });  
167 - $("#startDate").datetimepicker({  
168 - format : 'YYYY-MM',  
169 - locale : 'zh-cn',  
170 - maxDate : dateTime  
171 - });  
172 -  
173 -  
174 - var lineAll="",lineNoD="",lineD="";  
175 - var datas = {}; //查询条件  
176 -  
177 -  
178 - /**用户分配的线路*/  
179 - $.get('/realControAuthority/findByCurrentUser', function (userAuthor) {  
180 - lineAll = userAuthor.lineCodeStr.substring(0,userAuthor.lineCodeStr.length-1);  
181 - /* $.get('/line/all', function (lines) {  
182 - $.each(lines,function () {  
183 -  
184 - });  
185 -  
186 - });*/  
187 - });  
188 -  
189 - var tempData = {};  
190 -  
191 - $.get('/user/companyData', function(result){  
192 - var obj = result;  
193 - var options = '';  
194 - for(var i = 0; i < obj.length; i++){  
195 - options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';  
196 - }  
197 -  
198 - if(obj.length ==0){  
199 - $("#gsdmDiv_daily").css('display','none');  
200 - }else if(obj.length ==1){  
201 - $("#gsdmDiv_daily").css('display','none');  
202 - if(obj[0].children.length == 1 || obj[0].children.length == 0){  
203 - fage=false;  
204 - $('#gsdmDiv_daily').css('display','none');  
205 - }  
206 - }  
207 - $('#gsdm').html(options);  
208 - updateCompany();  
209 - });  
210 - $("#gsdm").on("change",updateCompany);  
211 -  
212 - function updateCompany(){  
213 - var company = $('#gsdm').val();  
214 - $.get('/user/companyData', function(obj) {  
215 - var option = '';  
216 - var allC = "";  
217 - for (var i = 0; i < obj.length; i++) {  
218 - if (obj[i].companyCode == company) {  
219 - var children = obj[i].children;  
220 - for (var j = 0; j < children.length; j++) {  
221 - allC += children[j].code+",";  
222 - option += '<option value="' + children[j].code + '">' + children[j].name + '</option>';  
223 - }  
224 - }  
225 - }  
226 -  
227 - var options = '<option value="'+allC.substring(0,allC.length-1)+'">所有分公司</option>'+option;  
228 - $('#fgsdm').html(options);  
229 - });  
230 - }  
231 -  
232 - // 项目明细选项列  
233 - // 触发默认选项  
234 - updateItem();  
235 - $("#statisticalItem").on("change",updateItem);  
236 - var item ="";  
237 - function updateItem() {  
238 - item = $('#statisticalItem').val();  
239 - var options = '';  
240 - if(item == "yh"){  
241 - options += '<option value="jzlAll">加注量[全部]</option>' +  
242 - '<option value="jzl0">加注量[0#]</option>'+  
243 - '<option value="jzl-10">加注量[-10#]</option>'+  
244 - '<option value="yhl">油耗量</option>'+  
245 - '<option value="cccy">出场存油</option>'+  
246 - '<option value="jccy">进场存油</option>'+  
247 - '<option value="bglyh">百公里油耗</option>';  
248 - } else if(item == "gl"){  
249 - options += '<option value="zgl">总公里</option>' +  
250 - '<option value="jhgl">计划公里</option>';  
251 - /*'<option value="jclm">进场路码</option>'+  
252 - '<option value="cclm">出场路码</option>'*/  
253 - } else if(item == "bc"){  
254 - options += '<option value="sjbc">实际班次</option>' +  
255 - '<option value="jhbc">计划班次</option>';  
256 - } else if(item == "dh"){  
257 - options += '<option value="dh">耗电量</option>';  
258 - options += '<option value="cdl">充电量</option>';  
259 - options += '<option value="cccd">出场存电</option>';  
260 - options += '<option value="jccd">进场存电</option>';  
261 - options += '<option value="bgldh">百公里电耗</option>';  
262 - }  
263 - $('#itemDetails').html(options);  
264 - }  
265 -  
266 - //线路名称  
267 - var lineName = '';  
268 - $("#query").on("click",function(){  
269 - var gsdm = $("#gsdm").val();  
270 - var fgsdm = $("#fgsdm").val();  
271 - var startDate = $("#startDate").val();  
272 - var endDate = $("#endDate").val();  
273 - var statisticalObj = $("#statisticalObj").val();  
274 - //开始和结束时间  
275 - var startTime = Date.parse(new Date(startDate));  
276 - var endTime = Date.parse(new Date(endDate));  
277 -  
278 - datas = {}; // 清空之前数据  
279 - datas.timeType = "y";  
280 - datas.gsdm = gsdm;  
281 - datas.fgsdm = fgsdm;  
282 - datas.lineCode = lineAll;  
283 - datas.startDate = startDate;  
284 - datas.endDate = endDate;  
285 - datas.destroy = $("#destroy").val();  
286 - datas.statisticalObj = $("#statisticalObj").val();  
287 - datas.itemDetails = $("#itemDetails").val();  
288 - datas.item = item;  
289 -  
290 - var itemDetails = datas.itemDetails,  
291 - type = "加注量[全部]";  
292 - if(itemDetails=="jzl0"){  
293 - type = "加注量[0#]"  
294 - } else if(itemDetails=="jzl-10"){  
295 - type = "加注量[-10#]"  
296 - } else if(itemDetails=="yhl"){  
297 - type = "油耗量"  
298 - } else if(itemDetails=="cccy"){  
299 - type = "出场存油"  
300 - } else if(itemDetails=="jccy"){  
301 - type = "进场存油"  
302 - } else if(itemDetails=="bglyh"){  
303 - type = "百公里油耗"  
304 - } else if(itemDetails=="zgl"){  
305 - type = "总公里"  
306 - } else if(itemDetails=="jhgl"){  
307 - type = "计划公里"  
308 - } else if(itemDetails=="jclm"){  
309 - type = "进场路码"  
310 - } else if(itemDetails=="cclm"){  
311 - type = "出场路码"  
312 - } else if(itemDetails=="sjbc"){  
313 - type = "实际班次"  
314 - } else if(itemDetails=="jhbc"){  
315 - type = "计划班次"  
316 - } else if(itemDetails=="dh"){  
317 - type = "耗电量"  
318 - } else if(itemDetails=="cdl"){  
319 - type = "充电量"  
320 - } else if(itemDetails=="cccd"){  
321 - type = "出场存电"  
322 - } else if(itemDetails=="jccd"){  
323 - type = "进场存电"  
324 - } else if(itemDetails=="bgldh"){  
325 - type = "百公里电耗"  
326 - }  
327 - datas.name = datas.startDate+"-"+datas.endDate+"-路单线路明细年报表("+type+")";  
328 - if(startDate==null || startDate =="" ||endDate==null || endDate ==""){  
329 - layer.msg('请选择时间段!');  
330 - }else if(endTime<startTime){  
331 - layer.msg('结束日期不能小于开始日期!');  
332 - }else {  
333 - if (endDate.substring(0, 4) != startDate.substring(0, 4)) {  
334 - layer.msg("请查询同年份数据!");  
335 - return;  
336 - } else {  
337 - var lodingI = layer.load(2);  
338 - $get('/calcWaybill/calcDetailMonthly', datas, function (rs) {  
339 - if (rs.length <=0) {  
340 - layer.close(lodingI);  
341 - layer.open({  
342 - title: '提示'  
343 - , content: '没有您要查询的数据,请重新选择参数!'  
344 - });  
345 - $("#export").attr('disabled',"true");  
346 - return;  
347 - }else  
348 - $("#export").removeAttr("disabled");  
349 - var htmlHead = "<tr><td colspan='"+rs[0].length+"'>"+datas.name+"</td></tr>", htmlBody = "";  
350 - var rsLength = rs.length;  
351 - rs.forEach(function (o, i) {  
352 - var html = "<tr>"  
353 - o.forEach(function (td, j) {  
354 - var colspan;  
355 - if (i == rsLength - 1 && j == 0) {  
356 - colspan = (statisticalObj == "xl" ? "colspan='3'" : "colspan='5'");  
357 - if(statisticalObj == "cl")  
358 - colspan = "colspan='6'";  
359 - }  
360 - html += "<td " + colspan + ">" + td + "</td>"  
361 - });  
362 - html += "</tr>"  
363 - if (i == 0) {  
364 - htmlHead += html;  
365 - } else  
366 - htmlBody += html;  
367 - });  
368 - $('#forms_head thead').html(htmlHead);  
369 - $('#forms_body tbody').html(htmlBody);  
370 - layer.close(lodingI);  
371 - });  
372 - }  
373 - }  
374 - });  
375 -  
376 - $("#export").on("click",function(){  
377 - $post("/report/calcDetailMonthlyE",datas,function(result){  
378 - window.open("/downloadFile/download?fileName="+datas.name);  
379 - });  
380 - });  
381 - });  
382 -</script>  
383 -<!--<script type="application/javascript" src="/pages/forms/calc/calcDetailMonthly.js"></script>--> 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: 620px;
  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:580px;
  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: 13px;" 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: 150px;"></select>
  67 + </div>
  68 + <div style="display: inline-block; margin-left: 13px;" id="fgsdmDiv_daily">
  69 + <span class="item-label" style="width: 80px;">&#12288;分公司: </span>
  70 + <select class="form-control" name="fgsdm" id="fgsdm" style="width: 150px;"></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 + <div style="display: inline-block;margin-left: 13px;" class="date-picker">
  77 + <span class="item-label" style="width: 80px;">&#12288;&#12288;时间: </span>
  78 + <input class="form-control" type="text" id="startDate" style="width: 150px;" /> -
  79 + <input class="form-control" type="text" id="endDate" style="width: 150px;" />
  80 + <!--<input class="form-control" type="text" id="startDate" style="width: 180px;" value="2020-10-01"/> - -->
  81 + <!--<input class="form-control" type="text" id="endDate" style="width: 180px;" value="2020-10-10"/>-->
  82 + </div>
  83 +
  84 + <div style="margin-top: 2px"></div>
  85 +
  86 + <div style="display: inline-block; margin-left: 13px;">
  87 + <span class="item-label" style="width: 80px;">线路性质: </span>
  88 + <select class="form-control" name="destroy" id="destroy" style="width: 150px;">
  89 + <option value="0,1">全部线路</option>
  90 + <option value="0">营运线路</option>
  91 + <option value="1">非营运线路</option>
  92 + </select>
  93 + </div>
  94 + <div style="display: inline-block;margin-left: 13px;">
  95 + <span class="item-label" style="width: 80px;">统计对象: </span>
  96 + <select class="form-control" name="statisticalObj" id="statisticalObj" style="width: 150px;">
  97 + <option value="cl">车辆</option>
  98 + <option value="jsy">驾驶员</option>
  99 + <option value="cwy">乘务员</option>
  100 + <option value="xl">线路</option>
  101 + </select>
  102 + </div>
  103 +
  104 + <div style="display: inline-block; margin-left: 13px;" >
  105 + <span class="item-label" style="width: 80px;">统计项目: </span>
  106 + <select class="form-control" name="statisticalItem" id="statisticalItem" style="width: 150px;">
  107 + <option value="yh">油耗</option>
  108 + <option value="dh">电耗</option>
  109 + <option value="qh">氢耗</option>
  110 + <option value="gl">公里</option>
  111 + <option value="bc">班次</option>
  112 + </select>
  113 + </div>
  114 + <div style="display: inline-block; margin-left: 13px;" >
  115 + <span class="item-label" style="width: 80px;">项目明细: </span>
  116 + <select class="form-control" name="itemDetails" id="itemDetails" style="width: 150px;"></select>
  117 + </div>
  118 + <div class="form-group" style="display: inline-block;margin-left: 22px;">
  119 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  120 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  121 + </div>
  122 + </form>
  123 + </div>
  124 +
  125 + <div id="analy_body">
  126 + <div class="table_head" id="table_head">
  127 + <table class="table table-bordered table-hover table-checkable " id="forms_head">
  128 + <thead>
  129 + </thead>
  130 + </table>
  131 + </div>
  132 + <div class="table_body" id="table_body">
  133 + <table class="table table-bordered table-hover table-checkable" id="forms_body">
  134 + <tbody>
  135 + </tbody>
  136 + </table>
  137 + </div>
  138 + </div>
  139 +</div>
  140 +<script >
  141 + $(function(){
  142 + $('#export').attr('disabled', "true");
  143 + // 关闭左侧栏
  144 + if (!$('body').hasClass('page-sidebar-closed'))
  145 + $('.menu-toggler.sidebar-toggler').click();
  146 +
  147 + var table_body1 = document.getElementById("table_body");
  148 + table_body1.onscroll = function(){
  149 + var table_body1_left = this.scrollLeft;
  150 + document.getElementById("table_head").scrollLeft = table_body1_left;
  151 + };
  152 +
  153 + var d = new Date();
  154 + var year = d.getFullYear();
  155 + var month = d.getMonth() + 1;
  156 + if(month < 10)
  157 + month = "0" + month;
  158 + //时间
  159 + var dateTime=year + "-" + month;
  160 + $("#startDate").val(dateTime);
  161 + $("#endDate").val(dateTime);
  162 +
  163 + $("#endDate").datetimepicker({
  164 + format : 'YYYY-MM',
  165 + locale : 'zh-cn',
  166 + maxDate : dateTime
  167 + });
  168 + $("#startDate").datetimepicker({
  169 + format : 'YYYY-MM',
  170 + locale : 'zh-cn',
  171 + maxDate : dateTime
  172 + });
  173 +
  174 +
  175 + var lineAll="",lineNoD="",lineD="";
  176 + var datas = {}; //查询条件
  177 +
  178 +
  179 + /**用户分配的线路*/
  180 + $.get('/realControAuthority/findByCurrentUser', function (userAuthor) {
  181 + lineAll = userAuthor.lineCodeStr.substring(0,userAuthor.lineCodeStr.length-1);
  182 + /* $.get('/line/all', function (lines) {
  183 + $.each(lines,function () {
  184 +
  185 + });
  186 +
  187 + });*/
  188 + });
  189 +
  190 + var tempData = {};
  191 +
  192 + $.get('/user/companyData', function(result){
  193 + var obj = result;
  194 + var options = '';
  195 + for(var i = 0; i < obj.length; i++){
  196 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  197 + }
  198 +
  199 + if(obj.length ==0){
  200 + $("#gsdmDiv_daily").css('display','none');
  201 + }else if(obj.length ==1){
  202 + $("#gsdmDiv_daily").css('display','none');
  203 + if(obj[0].children.length == 1 || obj[0].children.length == 0){
  204 + fage=false;
  205 + $('#gsdmDiv_daily').css('display','none');
  206 + }
  207 + }
  208 + $('#gsdm').html(options);
  209 + updateCompany();
  210 + });
  211 + $("#gsdm").on("change",updateCompany);
  212 +
  213 + function updateCompany(){
  214 + var company = $('#gsdm').val();
  215 + $.get('/user/companyData', function(obj) {
  216 + var option = '';
  217 + var allC = "";
  218 + for (var i = 0; i < obj.length; i++) {
  219 + if (obj[i].companyCode == company) {
  220 + var children = obj[i].children;
  221 + for (var j = 0; j < children.length; j++) {
  222 + allC += children[j].code+",";
  223 + option += '<option value="' + children[j].code + '">' + children[j].name + '</option>';
  224 + }
  225 + }
  226 + }
  227 +
  228 + var options = '<option value="'+allC.substring(0,allC.length-1)+'">所有分公司</option>'+option;
  229 + $('#fgsdm').html(options);
  230 + });
  231 + }
  232 +
  233 + // 项目明细选项列
  234 + // 触发默认选项
  235 + updateItem();
  236 + $("#statisticalItem").on("change",updateItem);
  237 + var item ="";
  238 + function updateItem() {
  239 + item = $('#statisticalItem').val();
  240 + var options = '';
  241 + if(item == "yh"){
  242 + options += '<option value="jzlAll">加注量[全部]</option>' +
  243 + '<option value="jzl0">加注量[0#]</option>'+
  244 + '<option value="jzl-10">加注量[-10#]</option>'+
  245 + '<option value="yhl">油耗量</option>'+
  246 + '<option value="cccy">出场存油</option>'+
  247 + '<option value="jccy">进场存油</option>'+
  248 + '<option value="bglyh">百公里油耗</option>';
  249 + } else if(item == "gl"){
  250 + options += '<option value="zgl">总公里</option>' +
  251 + '<option value="jhgl">计划公里</option>';
  252 + /*'<option value="jclm">进场路码</option>'+
  253 + '<option value="cclm">出场路码</option>'*/
  254 + } else if(item == "bc"){
  255 + options += '<option value="sjbc">实际班次</option>' +
  256 + '<option value="jhbc">计划班次</option>';
  257 + } else if(item == "dh"){
  258 + options += '<option value="dh">耗电量</option>';
  259 + options += '<option value="cdl">充电量</option>';
  260 + options += '<option value="cccd">出场存电</option>';
  261 + options += '<option value="jccd">进场存电</option>';
  262 + options += '<option value="bgldh">百公里电耗</option>';
  263 + } else if(item == "qh"){
  264 + options += '<option value="qh">耗氢量</option>';
  265 + options += '<option value="cql">充氢量</option>';
  266 + options += '<option value="cccq">出场存氢</option>';
  267 + options += '<option value="jccq">进场存氢</option>';
  268 + options += '<option value="bglqh">百公里氢耗</option>';
  269 + }
  270 + $('#itemDetails').html(options);
  271 + }
  272 +
  273 + //线路名称
  274 + var lineName = '';
  275 + $("#query").on("click",function(){
  276 + var gsdm = $("#gsdm").val();
  277 + var fgsdm = $("#fgsdm").val();
  278 + var startDate = $("#startDate").val();
  279 + var endDate = $("#endDate").val();
  280 + var statisticalObj = $("#statisticalObj").val();
  281 + //开始和结束时间
  282 + var startTime = Date.parse(new Date(startDate));
  283 + var endTime = Date.parse(new Date(endDate));
  284 +
  285 + datas = {}; // 清空之前数据
  286 + datas.timeType = "y";
  287 + datas.gsdm = gsdm;
  288 + datas.fgsdm = fgsdm;
  289 + datas.lineCode = lineAll;
  290 + datas.startDate = startDate;
  291 + datas.endDate = endDate;
  292 + datas.destroy = $("#destroy").val();
  293 + datas.statisticalObj = $("#statisticalObj").val();
  294 + datas.itemDetails = $("#itemDetails").val();
  295 + datas.item = item;
  296 +
  297 + var itemDetails = datas.itemDetails,
  298 + type = "加注量[全部]";
  299 + if(itemDetails=="jzl0"){
  300 + type = "加注量[0#]"
  301 + } else if(itemDetails=="jzl-10"){
  302 + type = "加注量[-10#]"
  303 + } else if(itemDetails=="yhl"){
  304 + type = "油耗量"
  305 + } else if(itemDetails=="cccy"){
  306 + type = "出场存油"
  307 + } else if(itemDetails=="jccy"){
  308 + type = "进场存油"
  309 + } else if(itemDetails=="bglyh"){
  310 + type = "百公里油耗"
  311 + } else if(itemDetails=="zgl"){
  312 + type = "总公里"
  313 + } else if(itemDetails=="jhgl"){
  314 + type = "计划公里"
  315 + } else if(itemDetails=="jclm"){
  316 + type = "进场路码"
  317 + } else if(itemDetails=="cclm"){
  318 + type = "出场路码"
  319 + } else if(itemDetails=="sjbc"){
  320 + type = "实际班次"
  321 + } else if(itemDetails=="jhbc"){
  322 + type = "计划班次"
  323 + } else if(itemDetails=="dh"){
  324 + type = "耗电量"
  325 + } else if(itemDetails=="cdl"){
  326 + type = "充电量"
  327 + } else if(itemDetails=="cccd"){
  328 + type = "出场存电"
  329 + } else if(itemDetails=="jccd"){
  330 + type = "进场存电"
  331 + } else if(itemDetails=="bgldh"){
  332 + type = "百公里电耗"
  333 + } else if(itemDetails=="qh"){
  334 + type = "耗氢量"
  335 + } else if(itemDetails=="cql"){
  336 + type = "充氢量"
  337 + } else if(itemDetails=="cccq"){
  338 + type = "出场存氢"
  339 + } else if(itemDetails=="jccq"){
  340 + type = "进场存氢"
  341 + } else if(itemDetails=="bglqh"){
  342 + type = "百公里氢耗"
  343 + }
  344 + datas.name = datas.startDate+"-"+datas.endDate+"-路单线路明细年报表("+type+")";
  345 + if(startDate==null || startDate =="" ||endDate==null || endDate ==""){
  346 + layer.msg('请选择时间段!');
  347 + }else if(endTime<startTime){
  348 + layer.msg('结束日期不能小于开始日期!');
  349 + }else {
  350 + if (endDate.substring(0, 4) != startDate.substring(0, 4)) {
  351 + layer.msg("请查询同年份数据!");
  352 + return;
  353 + } else {
  354 + var lodingI = layer.load(2);
  355 + $get('/calcWaybill/calcDetailMonthly', datas, function (rs) {
  356 + if (rs.length <=0) {
  357 + layer.close(lodingI);
  358 + layer.open({
  359 + title: '提示'
  360 + , content: '没有您要查询的数据,请重新选择参数!'
  361 + });
  362 + $("#export").attr('disabled',"true");
  363 + return;
  364 + }else
  365 + $("#export").removeAttr("disabled");
  366 + var htmlHead = "<tr><td colspan='"+rs[0].length+"'>"+datas.name+"</td></tr>", htmlBody = "";
  367 + var rsLength = rs.length;
  368 + rs.forEach(function (o, i) {
  369 + var html = "<tr>"
  370 + o.forEach(function (td, j) {
  371 + var colspan;
  372 + if (i == rsLength - 1 && j == 0) {
  373 + colspan = (statisticalObj == "xl" ? "colspan='3'" : "colspan='5'");
  374 + if(statisticalObj == "cl")
  375 + colspan = "colspan='6'";
  376 + }
  377 + html += "<td " + colspan + ">" + td + "</td>"
  378 + });
  379 + html += "</tr>"
  380 + if (i == 0) {
  381 + htmlHead += html;
  382 + } else
  383 + htmlBody += html;
  384 + });
  385 + $('#forms_head thead').html(htmlHead);
  386 + $('#forms_body tbody').html(htmlBody);
  387 + layer.close(lodingI);
  388 + });
  389 + }
  390 + }
  391 + });
  392 +
  393 + $("#export").on("click",function(){
  394 + $post("/report/calcDetailMonthlyE",datas,function(result){
  395 + window.open("/downloadFile/download?fileName="+datas.name);
  396 + });
  397 + });
  398 + });
  399 +</script>
  400 +<!--<script type="application/javascript" src="/pages/forms/calc/calcDetailMonthly.js"></script>-->