Commit 960655bf72e3b657cf7b41a710b03d75dd83d469

Authored by 廖磊
1 parent f25f4d48

统计人员车辆里程班次

src/main/java/com/bsth/entity/ScheduleRealInfo.java
1   -package com.bsth.entity;
2   -
3   -import org.apache.commons.lang3.StringUtils;
4   -import org.joda.time.format.DateTimeFormat;
5   -import org.joda.time.format.DateTimeFormatter;
6   -
7   -import javax.persistence.*;
8   -import java.io.Serializable;
9   -import java.util.Date;
10   -import java.util.HashSet;
11   -import java.util.Set;
12   -
13   -/**
14   - * 实际排班计划明细。
15   - */
16   -@Entity
17   -@Table(name = "bsth_c_s_sp_info_real")
18   -@NamedEntityGraphs({
19   - @NamedEntityGraph(name = "scheduleRealInfo_cTasks", attributeNodes = {
20   - @NamedAttributeNode("cTasks")
21   - })
22   -})
23   -public class ScheduleRealInfo implements Serializable{
24   -
25   -
26   -
27   - /** 主键Id */
28   - @Id
29   - private Long id;
30   -
31   - /** 计划ID */
32   - private Long spId;
33   -
34   - /** 排班计划日期 */
35   - private Date scheduleDate;
36   - private String scheduleDateStr;
37   -
38   - /** 真实执行时间 yyyy-MM-dd */
39   - private String realExecDate;
40   -
41   - /** 线路名称 */
42   - private String xlName;
43   - /** 线路编码 */
44   - private String xlBm;
45   -
46   - /** 路牌名称 */
47   - private String lpName;
48   -
49   - /** 车辆自编号 */
50   - private String clZbh;
51   -
52   - /** 驾驶员工号 */
53   - private String jGh;
54   - /** 驾驶员名字 */
55   - private String jName;
56   - /** 售票员工号 */
57   - private String sGh;
58   - /** 售票员名字 */
59   - private String sName;
60   -
61   - /** 线路方向 */
62   - private String xlDir;
63   - /** 起点站code*/
64   - private String qdzCode;
65   - /** 起点站名字 */
66   - private String qdzName;
67   -
68   - /** 终点站code*/
69   - private String zdzCode;
70   - /** 终点站名字 */
71   - private String zdzName;
72   -
73   - /** 计划发车时间(格式 HH:mm) */
74   - private String fcsj;
75   - /** 计划发车时间戳*/
76   - @Transient
77   - private Long fcsjT;
78   -
79   - /** 计划终点时间(格式 HH:mm) */
80   - private String zdsj;
81   - /** 计划终点时间戳*/
82   - @Transient
83   - private Long zdsjT;
84   -
85   - /** 计划里程 */
86   - private Double jhlc;
87   -
88   - /** 原始计划里程 (原计调的数据) */
89   - private Double jhlcOrig;
90   -
91   - /** 班次历时 */
92   - private Integer bcsj;
93   -
94   - /**
95   - * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶
96   - */
97   - private String bcType;
98   -
99   - /** 实际发车时间*/
100   - private String fcsjActual;
101   - /** 实际发车时间戳*/
102   - @Transient
103   - private Long fcsjActualTime;
104   - /**实际终点时间 */
105   - private String zdsjActual;
106   - /** 实际终点时间戳*/
107   - @Transient
108   - private Long zdsjActualTime;
109   -
110   - /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */
111   - private int status;
112   -
113   - private String adjustExps;
114   -
115   - /** 是否是临加班次 */
116   - private boolean sflj;
117   -
118   - /** 备注*/
119   - private String remarks;
120   -
121   - /**待发时间(格式 HH:mm) */
122   - private String dfsj;
123   -
124   - /**待发时间戳 */
125   - @Transient
126   - private Long dfsjT;
127   -
128   - /** 指令下发状态 60: 已发送, 100: 设备确认收到, 200:驾驶员确认 0:失败 */
129   - private Integer directiveState = -1;
130   -
131   - /** 子任务 */
132   - @OneToMany(fetch = FetchType.LAZY, mappedBy = "schedule")
133   - private Set<ChildTaskPlan> cTasks = new HashSet<>();
134   -
135   - /** 关联的公司名称 */
136   - private String gsName;
137   - /** 关联的公司编码 */
138   - private String gsBm;
139   - /** 关联的分公司名称 */
140   - private String fgsName;
141   - /** 关联的分公司编码 */
142   - private String fgsBm;
143   -
144   - /** 工时(分钟),包含停站时间 */
145   - @Transient
146   - private Integer hours;
147   -
148   - @Override
149   - public int hashCode() {
150   - return (this.id + this.scheduleDateStr + this.xlBm + this.fcsj).hashCode();
151   - }
152   -
153   - @Override
154   - public boolean equals(Object obj) {
155   - return this.id.equals(((ScheduleRealInfo)obj).getId());
156   - }
157   -
158   - public Long getId() {
159   - return id;
160   - }
161   -
162   - public void setId(Long id) {
163   - this.id = id;
164   - }
165   -
166   - public Long getSpId() {
167   - return spId;
168   - }
169   -
170   - public void setSpId(Long spId) {
171   - this.spId = spId;
172   - }
173   -
174   - public Date getScheduleDate() {
175   - return scheduleDate;
176   - }
177   -
178   - public void setScheduleDate(Date scheduleDate) {
179   - this.scheduleDate = scheduleDate;
180   - }
181   -
182   - public String getScheduleDateStr() {
183   - return scheduleDateStr;
184   - }
185   -
186   - public void setScheduleDateStr(String scheduleDateStr) {
187   - this.scheduleDateStr = scheduleDateStr;
188   - }
189   -
190   - public String getRealExecDate() {
191   - return realExecDate;
192   - }
193   -
194   - public void setRealExecDate(String realExecDate) {
195   - this.realExecDate = realExecDate;
196   - }
197   -
198   - public String getXlName() {
199   - return xlName;
200   - }
201   -
202   - public void setXlName(String xlName) {
203   - this.xlName = xlName;
204   - }
205   -
206   - public String getXlBm() {
207   - return xlBm;
208   - }
209   -
210   - public void setXlBm(String xlBm) {
211   - this.xlBm = xlBm;
212   - }
213   -
214   - public String getLpName() {
215   - return lpName;
216   - }
217   -
218   - public void setLpName(String lpName) {
219   - this.lpName = lpName;
220   - }
221   -
222   - public String getClZbh() {
223   - return clZbh;
224   - }
225   -
226   - public void setClZbh(String clZbh) {
227   - this.clZbh = clZbh;
228   - }
229   -
230   - public String getjGh() {
231   - return jGh;
232   - }
233   -
234   - public void setjGh(String jGh) {
235   - this.jGh = jGh;
236   - }
237   -
238   - public String getjName() {
239   - return jName;
240   - }
241   -
242   - public void setjName(String jName) {
243   - this.jName = jName;
244   - }
245   -
246   - public String getsGh() {
247   - return sGh;
248   - }
249   -
250   - public void setsGh(String sGh) {
251   - this.sGh = sGh;
252   - }
253   -
254   - public String getsName() {
255   - return sName;
256   - }
257   -
258   - public void setsName(String sName) {
259   - this.sName = sName;
260   - }
261   -
262   - public String getXlDir() {
263   - return xlDir;
264   - }
265   -
266   - public void setXlDir(String xlDir) {
267   - this.xlDir = xlDir;
268   - }
269   -
270   - public String getQdzCode() {
271   - return qdzCode;
272   - }
273   -
274   - public void setQdzCode(String qdzCode) {
275   - this.qdzCode = qdzCode;
276   - }
277   -
278   - public String getQdzName() {
279   - return qdzName;
280   - }
281   -
282   - public void setQdzName(String qdzName) {
283   - this.qdzName = qdzName;
284   - }
285   -
286   - public String getZdzCode() {
287   - return zdzCode;
288   - }
289   -
290   - public void setZdzCode(String zdzCode) {
291   - this.zdzCode = zdzCode;
292   - }
293   -
294   - public String getZdzName() {
295   - return zdzName;
296   - }
297   -
298   - public void setZdzName(String zdzName) {
299   - this.zdzName = zdzName;
300   - }
301   -
302   - public String getFcsj() {
303   - return fcsj;
304   - }
305   -
306   - public void setFcsj(String fcsj) {
307   - this.fcsj = fcsj;
308   - }
309   -
310   - public Long getFcsjT() {
311   - return fcsjT;
312   - }
313   -
314   - public void setFcsjT(Long fcsjT) {
315   - this.fcsjT = fcsjT;
316   - }
317   -
318   - public String getZdsj() {
319   - return zdsj;
320   - }
321   -
322   - public void setZdsj(String zdsj) {
323   - this.zdsj = zdsj;
324   - }
325   -
326   - public Long getZdsjT() {
327   - return zdsjT;
328   - }
329   -
330   - public void setZdsjT(Long zdsjT) {
331   - this.zdsjT = zdsjT;
332   - }
333   -
334   - public Double getJhlc() {
335   - return jhlc;
336   - }
337   -
338   - public void setJhlc(Double jhlc) {
339   - this.jhlc = jhlc;
340   - }
341   -
342   - public Integer getBcsj() {
343   - return bcsj;
344   - }
345   -
346   - public void setBcsj(Integer bcsj) {
347   - this.bcsj = bcsj;
348   - }
349   -
350   - public String getBcType() {
351   - return bcType;
352   - }
353   -
354   - public void setBcType(String bcType) {
355   - this.bcType = bcType;
356   - }
357   -
358   - public String getFcsjActual() {
359   - return fcsjActual;
360   - }
361   -
362   - public void setFcsjActual(String fcsjActual) {
363   - this.fcsjActual = fcsjActual;
364   - }
365   -
366   - public Long getFcsjActualTime() {
367   - return fcsjActualTime;
368   - }
369   -
370   - public void setFcsjActualTime(Long fcsjActualTime) {
371   - this.fcsjActualTime = fcsjActualTime;
372   - }
373   -
374   - public String getZdsjActual() {
375   - return zdsjActual;
376   - }
377   -
378   - public void setZdsjActual(String zdsjActual) {
379   - this.zdsjActual = zdsjActual;
380   - }
381   -
382   - public Long getZdsjActualTime() {
383   - return zdsjActualTime;
384   - }
385   -
386   - public void setZdsjActualTime(Long zdsjActualTime) {
387   - this.zdsjActualTime = zdsjActualTime;
388   - }
389   -
390   - public int getStatus() {
391   - return status;
392   - }
393   -
394   - public void setStatus(int status) {
395   - this.status = status;
396   - }
397   -
398   - public String getAdjustExps() {
399   - return adjustExps;
400   - }
401   -
402   - public void setAdjustExps(String adjustExps) {
403   - this.adjustExps = adjustExps;
404   - }
405   -
406   - public boolean isSflj() {
407   - return sflj;
408   - }
409   -
410   - public void setSflj(boolean sflj) {
411   - this.sflj = sflj;
412   - }
413   -
414   - public String getRemarks() {
415   - return remarks;
416   - }
417   -
418   - public void setRemarks(String remarks) {
419   - this.remarks = remarks;
420   - }
421   -
422   - public String getDfsj() {
423   - return dfsj;
424   - }
425   -
426   - public void setDfsj(String dfsj) {
427   - this.dfsj = dfsj;
428   - }
429   -
430   - public Long getDfsjT() {
431   - return dfsjT;
432   - }
433   -
434   - public void setDfsjT(Long dfsjT) {
435   - this.dfsjT = dfsjT;
436   - }
437   -
438   - public Integer getDirectiveState() {
439   - return directiveState;
440   - }
441   -
442   - public void setDirectiveState(Integer directiveState) {
443   - this.directiveState = directiveState;
444   - }
445   -
446   - public Set<ChildTaskPlan> getcTasks() {
447   - return cTasks;
448   - }
449   -
450   - public void setcTasks(Set<ChildTaskPlan> cTasks) {
451   - this.cTasks = cTasks;
452   - }
453   -
454   - public String getGsName() {
455   - return gsName;
456   - }
457   -
458   - public void setGsName(String gsName) {
459   - this.gsName = gsName;
460   - }
461   -
462   - public String getGsBm() {
463   - return gsBm;
464   - }
465   -
466   - public void setGsBm(String gsBm) {
467   - this.gsBm = gsBm;
468   - }
469   -
470   - public String getFgsName() {
471   - return fgsName;
472   - }
473   -
474   - public void setFgsName(String fgsName) {
475   - this.fgsName = fgsName;
476   - }
477   -
478   - public String getFgsBm() {
479   - return fgsBm;
480   - }
481   -
482   - public void setFgsBm(String fgsBm) {
483   - this.fgsBm = fgsBm;
484   - }
485   -
486   - public Double getJhlcOrig() {
487   - return jhlcOrig;
488   - }
489   -
490   - public void setJhlcOrig(Double jhlcOrig) {
491   - this.jhlcOrig = jhlcOrig;
492   - }
493   -
494   -
495   - @Transient
496   - private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm");
497   - @Transient
498   - private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm");
499   -
500   - /**
501   - *
502   - * @Title: setFcsjAll
503   - * @Description: TODO(设置计划发车时间)
504   - * @throws
505   - */
506   - public void setFcsjAll(Long fcsjT){
507   - this.fcsjT = fcsjT;
508   - this.fcsj = fmtHHmm.print(fcsjT);
509   - }
510   -
511   - public void setDfsjAll(Long dfsjT) {
512   - this.dfsjT = dfsjT;
513   - this.dfsj = fmtHHmm.print(this.dfsjT);
514   - }
515   -
516   - /**
517   - *
518   - * @Title: setFcsjActualAll
519   - * @Description: TODO(设置实际发车时间 时间戳)
520   - * @throws
521   - */
522   - public void setFcsjActualAll(Long t){
523   - this.fcsjActualTime = t;
524   - this.fcsjActual = fmtHHmm.print(t);
525   - }
526   -
527   - /**
528   - *
529   - * @Title: setFcsjActualAll
530   - * @Description: TODO(设置实际终点时间)
531   - * @throws
532   - */
533   - public void setZdsjActualAll(Long t){
534   - this.zdsjActualTime = t;
535   - this.zdsjActual = fmtHHmm.print(t);
536   - }
537   -
538   - public void setDfsjAll(String dfsj) {
539   - this.dfsjT = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + dfsj);
540   - this.dfsj = dfsj;
541   - }
542   -
543   - /**
544   - *
545   - * @Title: setFcsjActualAll
546   - * @Description: TODO(设置实际发车时间 字符串)
547   - * @throws
548   - */
549   - public void setFcsjActualAll(String fcsjActual){
550   - this.fcsjActualTime = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + fcsjActual);
551   - this.fcsjActual = fcsjActual;
552   - }
553   -
554   - /**
555   - *
556   - * @Title: setFcsjActualAll
557   - * @Description: TODO(设置实际终点时间)
558   - * @throws
559   - */
560   - public void setZdsjActualAll(String zdsjActual){
561   - this.zdsjActualTime = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + zdsjActual);
562   - this.zdsjActual = zdsjActual;
563   - }
564   -
565   - public void calcHoursJh() {
566   - if(this.status == -1)
567   - this.setHours(0);
568   - else
569   - this.setHours(this.getBcsj());
570   - }
571   -
572   - public void calcHoursSJ() {
573   - try {
574   - if(StringUtils.isEmpty(this.fcsjActual))
575   - this.setFcsjActualAll(this.dfsjT);
576   - if(StringUtils.isEmpty(this.zdsjActual))
577   - this.setZdsjActualAll(this.zdsjT);
578   -
579   - /*if(this.status == -1)
580   - this.hours = 0;
581   - else*/
582   - this.hours = Integer.parseInt(String.valueOf((this.zdsjActualTime - this.fcsjActualTime) / 1000 / 60));
583   - }catch (Exception e){
584   - System.out.println("aa");
585   - }
586   - }
587   -
588   - public Integer getHours() {
589   - return hours;
590   - }
591   -
592   - public void setHours(Integer hours) {
593   - this.hours = hours;
594   - }
595   -}
  1 +package com.bsth.entity;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonIgnore;
  4 +import org.apache.commons.lang3.StringUtils;
  5 +import org.joda.time.format.DateTimeFormat;
  6 +import org.joda.time.format.DateTimeFormatter;
  7 +
  8 +import javax.persistence.*;
  9 +import java.util.Date;
  10 +import java.util.HashSet;
  11 +import java.util.Set;
  12 +
  13 +/**
  14 + * 实际排班计划明细。
  15 + */
  16 +@Entity
  17 +@Table(name = "bsth_c_s_sp_info_real")
  18 +@NamedEntityGraphs({
  19 + @NamedEntityGraph(name = "scheduleRealInfo_cTasks", attributeNodes = {
  20 + @NamedAttributeNode("cTasks")
  21 + })
  22 +})
  23 +public class ScheduleRealInfo {
  24 + /** 主键Id */
  25 + @Id
  26 + @GeneratedValue
  27 + private Long id;
  28 +
  29 + /** 计划ID */
  30 + private Long spId;
  31 +
  32 + /** 排班计划日期 --no webSocket */
  33 + private Date scheduleDate;
  34 + /** 排班日期字符串 YYYY-MM-DD */
  35 + private String scheduleDateStr;
  36 +
  37 + /** 真实执行时间 yyyy-MM-dd */
  38 + private String realExecDate;
  39 +
  40 + /** 线路名称 */
  41 + private String xlName;
  42 + /** 线路编码 */
  43 + private String xlBm;
  44 +
  45 + /** 路牌名称 */
  46 + private String lpName;
  47 +
  48 + /** 车辆自编号 */
  49 + private String clZbh;
  50 +
  51 + /** 驾驶员工号 */
  52 + private String jGh;
  53 + /** 驾驶员名字 */
  54 + private String jName;
  55 + /** 售票员工号 */
  56 + private String sGh;
  57 + /** 售票员名字 */
  58 + private String sName;
  59 +
  60 + /** 线路方向 */
  61 + private String xlDir;
  62 + /** 起点站code*/
  63 + private String qdzCode;
  64 + /** 起点站名字 */
  65 + private String qdzName;
  66 +
  67 + /** 终点站code*/
  68 + private String zdzCode;
  69 + /** 终点站名字 */
  70 + private String zdzName;
  71 +
  72 + /** 计划发车时间(格式 HH:mm) */
  73 + private String fcsj;
  74 + /** 计划发车时间戳*/
  75 + @Transient
  76 + private Long fcsjT;
  77 +
  78 + /** 计划终点时间(格式 HH:mm) */
  79 + private String zdsj;
  80 + /** 计划终点时间戳*/
  81 + @Transient
  82 + private Long zdsjT;
  83 +
  84 + /** 发车顺序号 --no webSocket*/
  85 + private Integer fcno;
  86 + /** 对应班次数 --no webSocket*/
  87 + private Integer bcs;
  88 + /** 计划里程 */
  89 + private Double jhlc;
  90 +
  91 + /** 原始计划里程 (原计调的数据) */
  92 + private Double jhlcOrig;
  93 +
  94 + /** 实际里程 --no webSocket*/
  95 + @Transient
  96 + @JsonIgnore
  97 + private Double realMileage;
  98 +
  99 + /** 实际里程 --no webSocket */
  100 + @Transient
  101 + private String sjlc;
  102 + /** 班次历时 */
  103 + private Integer bcsj;
  104 +
  105 + /**
  106 + * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶
  107 + */
  108 + private String bcType;
  109 +
  110 + //放站班次 站点名称
  111 + private String majorStationName;
  112 +
  113 + /** 创建日期 */
  114 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  115 + private Date createDate;
  116 + /** 修改日期 */
  117 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  118 + private Date updateDate;
  119 +
  120 + /** 实际发车时间*/
  121 + private String fcsjActual;
  122 + /** 实际发车时间戳*/
  123 + @Transient
  124 + private Long fcsjActualTime;
  125 + /**实际终点时间 */
  126 + private String zdsjActual;
  127 + /** 实际终点时间戳*/
  128 + @Transient
  129 + private Long zdsjActualTime;
  130 +
  131 + /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */
  132 + private int status;
  133 +
  134 + private String adjustExps;
  135 +
  136 + /** 是否是临加班次 */
  137 + private boolean sflj;
  138 +
  139 + /** 是否误点 (应发未发)*/
  140 + @Transient
  141 + private boolean late;
  142 +
  143 + /** 是否误点 (应发未到) */
  144 + @Transient
  145 + private boolean late2;
  146 + /** 误点停靠时间 */
  147 + @Transient
  148 + private float lateMinute;
  149 +
  150 + /** 备注*/
  151 + private String remarks;
  152 +
  153 + /** 原计划排班备注 --no webSocket */
  154 + @Transient
  155 + private String remark;
  156 +
  157 + /**待发时间(格式 HH:mm) */
  158 + private String dfsj;
  159 +
  160 + /**待发时间戳 */
  161 + @Transient
  162 + private Long dfsjT;
  163 +
  164 + /** 指令下发状态 60: 已发送, 100: 设备确认收到, 200:驾驶员确认 0:失败 */
  165 + private Integer directiveState = -1;
  166 +
  167 + /** 起点站计划到达时间 */
  168 + @Transient
  169 + private String qdzArrDatejh;
  170 +
  171 + /** 起点站实际到达时间 */
  172 + @Transient
  173 + private String qdzArrDatesj;
  174 +
  175 + /** 子任务 */
  176 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "schedule")
  177 + private Set<ChildTaskPlan> cTasks = new HashSet<>();
  178 +
  179 + /** 关联的公司名称 */
  180 + private String gsName;
  181 + /** 关联的公司编码 */
  182 + private String gsBm;
  183 + /** 关联的分公司名称 */
  184 + private String fgsName;
  185 + /** 关联的分公司编码 */
  186 + private String fgsBm;
  187 + /** 出场顺序号 */
  188 + private Integer ccno;
  189 +
  190 + //待发调试(是否自动调整)
  191 + private boolean dfAuto;
  192 + //是否有GPS信号
  193 + private boolean online;
  194 +
  195 + /** 是否有补发GPS信号 */
  196 + private boolean reissue;
  197 +
  198 + /** 发车屏 发车顺序号,不持久化,会动态变化 --no webSocket*/
  199 + @Transient
  200 + private int fcpSn;
  201 +
  202 + /** 标记班次已被删除 */
  203 + @Transient
  204 + @JsonIgnore
  205 + private boolean deleted;
  206 +
  207 + @Transient
  208 + @JsonIgnore
  209 + private int saveFailCount=0;
  210 +
  211 + /** 是否需要补充GPS信号 (网关提交至运管处动态数据用) 1: 能发车, 2:能到达 3: 补发过*/
  212 + private int siginCompate;
  213 +
  214 + /**
  215 + * 漂移状态
  216 + * 1: 发车漂移
  217 + * 2:到站漂移
  218 + * 3:中途漂移
  219 + */
  220 + private Integer driftStatus = 0;
  221 +
  222 + /**
  223 + * 换车营运标记 true 表示该主任务由 【中途换车子任务】 级联生成
  224 + */
  225 + private boolean ccService;
  226 +
  227 + public boolean isDfAuto() {
  228 + return dfAuto;
  229 + }
  230 +
  231 + public void setDfAuto(boolean dfAuto) {
  232 + this.dfAuto = dfAuto;
  233 + }
  234 +
  235 + public boolean isOnline() {
  236 + return online;
  237 + }
  238 +
  239 + public void setOnline(boolean online) {
  240 + this.online = online;
  241 + }
  242 +
  243 + public String getQdzArrDatejh() {
  244 + return qdzArrDatejh;
  245 + }
  246 +
  247 + public void setQdzArrDatejh(String qdzArrDatejh) {
  248 + this.qdzArrDatejh = qdzArrDatejh;
  249 + }
  250 +
  251 + public String getQdzArrDatesj() {
  252 + return qdzArrDatesj;
  253 + }
  254 +
  255 + public void setQdzArrDatesj(String qdzArrDatesj) {
  256 + this.qdzArrDatesj = qdzArrDatesj;
  257 + }
  258 +
  259 + public void setcTasks(Set<ChildTaskPlan> cTasks) {
  260 + this.cTasks = cTasks;
  261 + }
  262 +
  263 + public String getGsName() {
  264 + return gsName;
  265 + }
  266 +
  267 + public void setGsName(String gsName) {
  268 + this.gsName = gsName;
  269 + }
  270 +
  271 + public String getGsBm() {
  272 + return gsBm;
  273 + }
  274 +
  275 + public void setGsBm(String gsBm) {
  276 + this.gsBm = gsBm;
  277 + }
  278 +
  279 + public String getFgsName() {
  280 + return fgsName;
  281 + }
  282 +
  283 + public void setFgsName(String fgsName) {
  284 + this.fgsName = fgsName;
  285 + }
  286 +
  287 + public String getFgsBm() {
  288 + return fgsBm;
  289 + }
  290 +
  291 + public void setFgsBm(String fgsBm) {
  292 + this.fgsBm = fgsBm;
  293 + }
  294 +
  295 + public Integer getCcno() {
  296 + return ccno;
  297 + }
  298 +
  299 + public void setCcno(Integer ccno) {
  300 + this.ccno = ccno;
  301 + }
  302 +
  303 +
  304 + /** ----------------
  305 + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
  306 + private RealTimeModel sjfcModel;
  307 + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
  308 + private RealTimeModel sjddModel;
  309 + */
  310 + public void addRemarks(String remark){
  311 + if(StringUtils.isBlank(remark))
  312 + return;
  313 + String old = this.getRemarks();
  314 + if(StringUtils.isBlank(old))
  315 + old = "";
  316 +
  317 + old += remark + ";";
  318 + this.setRemarks(old);
  319 +
  320 + }
  321 +
  322 + public Long getId() {
  323 + return id;
  324 + }
  325 +
  326 + public void setId(Long id) {
  327 + this.id = id;
  328 + }
  329 +
  330 + public Date getScheduleDate() {
  331 + return scheduleDate;
  332 + }
  333 +
  334 + public void setScheduleDate(Date scheduleDate) {
  335 + this.scheduleDate = scheduleDate;
  336 + }
  337 +
  338 + public String getXlName() {
  339 + return xlName;
  340 + }
  341 +
  342 + public void setXlName(String xlName) {
  343 + this.xlName = xlName;
  344 + }
  345 +
  346 + public String getXlBm() {
  347 + return xlBm;
  348 + }
  349 +
  350 + public void setXlBm(String xlBm) {
  351 + this.xlBm = xlBm;
  352 + }
  353 +
  354 + public String getLpName() {
  355 + return lpName;
  356 + }
  357 +
  358 + public void setLpName(String lpName) {
  359 + this.lpName = lpName;
  360 + }
  361 +
  362 + public String getClZbh() {
  363 + return clZbh;
  364 + }
  365 +
  366 + public void setClZbh(String clZbh) {
  367 + this.clZbh = clZbh;
  368 + }
  369 +
  370 + public String getjGh() {
  371 + return jGh;
  372 + }
  373 +
  374 + public void setjGh(String jGh) {
  375 + this.jGh = jGh;
  376 + }
  377 +
  378 + public String getjName() {
  379 + return jName;
  380 + }
  381 +
  382 + public void setjName(String jName) {
  383 + this.jName = jName;
  384 + }
  385 +
  386 + public String getsGh() {
  387 + if(sGh == null)
  388 + return "";
  389 + return sGh;
  390 + }
  391 +
  392 + public void setsGh(String sGh) {
  393 + this.sGh = sGh;
  394 + }
  395 +
  396 + public String getsName() {
  397 + if(sGh == null)
  398 + return "";
  399 + return sName;
  400 + }
  401 +
  402 + public void setsName(String sName) {
  403 + this.sName = sName;
  404 + }
  405 +
  406 + public String getXlDir() {
  407 + return xlDir;
  408 + }
  409 +
  410 + public void setXlDir(String xlDir) {
  411 + this.xlDir = xlDir;
  412 + }
  413 +
  414 + public String getQdzCode() {
  415 + return qdzCode;
  416 + }
  417 +
  418 + public void setQdzCode(String qdzCode) {
  419 + this.qdzCode = qdzCode;
  420 + }
  421 +
  422 + public String getQdzName() {
  423 + return qdzName;
  424 + }
  425 +
  426 + public void setQdzName(String qdzName) {
  427 + this.qdzName = qdzName;
  428 + }
  429 +
  430 + public String getZdzCode() {
  431 + return zdzCode;
  432 + }
  433 +
  434 + public void setZdzCode(String zdzCode) {
  435 + this.zdzCode = zdzCode;
  436 + }
  437 +
  438 + public String getZdzName() {
  439 + return zdzName;
  440 + }
  441 +
  442 + public void setZdzName(String zdzName) {
  443 + this.zdzName = zdzName;
  444 + }
  445 +
  446 + public String getFcsj() {
  447 + return fcsj;
  448 + }
  449 +
  450 + public void setFcsj(String fcsj) {
  451 + this.fcsj = fcsj;
  452 + }
  453 +
  454 + public Long getFcsjT() {
  455 + return fcsjT;
  456 + }
  457 +
  458 + public void setFcsjT(Long fcsjT) {
  459 + this.fcsjT = fcsjT;
  460 + }
  461 +
  462 + public String getZdsj() {
  463 + return zdsj;
  464 + }
  465 +
  466 + public void setZdsj(String zdsj) {
  467 + this.zdsj = zdsj;
  468 + }
  469 +
  470 + public Long getZdsjT() {
  471 + return zdsjT;
  472 + }
  473 +
  474 + public void setZdsjT(Long zdsjT) {
  475 + this.zdsjT = zdsjT;
  476 + }
  477 +
  478 + public Integer getFcno() {
  479 + return fcno;
  480 + }
  481 +
  482 + public void setFcno(Integer fcno) {
  483 + this.fcno = fcno;
  484 + }
  485 +
  486 + public Integer getBcs() {
  487 + return bcs;
  488 + }
  489 +
  490 + public void setBcs(Integer bcs) {
  491 + this.bcs = bcs;
  492 + }
  493 +
  494 + public Double getJhlc() {
  495 + return jhlc;
  496 + }
  497 +
  498 + public void setJhlc(Double jhlc) {
  499 + this.jhlc = jhlc;
  500 + //临加班次 计划公里 和 实际计划公里一样
  501 + if(this.isSflj())
  502 + this.setJhlcOrig(this.getJhlc());
  503 + }
  504 +
  505 + public String getSjlc() {
  506 + return sjlc;
  507 + }
  508 +
  509 + public void setSjlc(String sjlc) {
  510 + this.sjlc = sjlc;
  511 + }
  512 +
  513 + public Integer getBcsj() {
  514 + return bcsj;
  515 + }
  516 +
  517 + public void setBcsj(Integer bcsj) {
  518 + this.bcsj = bcsj;
  519 + }
  520 +
  521 + public String getBcType() {
  522 + return bcType;
  523 + }
  524 +
  525 + public void setBcType(String bcType) {
  526 + this.bcType = bcType;
  527 + }
  528 +
  529 +
  530 +
  531 + public Date getCreateDate() {
  532 + return createDate;
  533 + }
  534 +
  535 + public void setCreateDate(Date createDate) {
  536 + this.createDate = createDate;
  537 + }
  538 +
  539 + public Date getUpdateDate() {
  540 + return updateDate;
  541 + }
  542 +
  543 + public void setUpdateDate(Date updateDate) {
  544 + this.updateDate = updateDate;
  545 + }
  546 +
  547 + public String getFcsjActual() {
  548 + return fcsjActual;
  549 + }
  550 +
  551 + public void setFcsjActual(String fcsjActual) {
  552 + this.fcsjActual = fcsjActual;
  553 + }
  554 +
  555 + public Long getFcsjActualTime() {
  556 + return fcsjActualTime;
  557 + }
  558 +
  559 + public void setFcsjActualTime(Long fcsjActualTime) {
  560 + this.fcsjActualTime = fcsjActualTime;
  561 + }
  562 +
  563 + public String getZdsjActual() {
  564 + return zdsjActual;
  565 + }
  566 +
  567 + public void setZdsjActual(String zdsjActual) {
  568 + this.zdsjActual = zdsjActual;
  569 + }
  570 +
  571 + public Long getZdsjActualTime() {
  572 + return zdsjActualTime;
  573 + }
  574 +
  575 + public void setZdsjActualTime(Long zdsjActualTime) {
  576 + this.zdsjActualTime = zdsjActualTime;
  577 + }
  578 +
  579 + public int getStatus() {
  580 + return status;
  581 + }
  582 +
  583 + public void setStatus(int status) {
  584 + this.status = status;
  585 + }
  586 +
  587 + public String getRemarks() {
  588 + return remarks;
  589 + }
  590 +
  591 + public void setRemarks(String remarks) {
  592 + this.remarks = remarks;
  593 + }
  594 +
  595 + public String getDfsj() {
  596 + return dfsj;
  597 + }
  598 +
  599 + public void setDfsj(String dfsj) {
  600 + this.dfsj = dfsj;
  601 + }
  602 +
  603 + public Long getDfsjT() {
  604 + return dfsjT;
  605 + }
  606 +
  607 + public void setDfsjT(Long dfsjT) {
  608 + this.dfsjT = dfsjT;
  609 + }
  610 +
  611 +
  612 + @Transient
  613 + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm");
  614 + @Transient
  615 + private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm");
  616 +
  617 + public void setDfsjAll(Long dfsjT) {
  618 + this.dfsjT = dfsjT;
  619 + this.dfsj = fmtHHmm.print(this.dfsjT);
  620 + }
  621 +
  622 + public void setDfsjAll(String dfsj) {
  623 + this.dfsjT = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + dfsj);
  624 + this.dfsj = dfsj;
  625 + }
  626 +
  627 + public void calcEndTime(){
  628 + //计划终点时间
  629 + if(this.getBcsj() != null){
  630 + //this.setZdsjT(this.getDfsjT() + (this.getBcsj() * 60 * 1000));
  631 + this.setZdsjT(this.getFcsjT() + (this.getBcsj() * 60 * 1000));//计划终点时间不变
  632 + this.setZdsj(fmtHHmm.print(this.zdsjT));
  633 + }
  634 + }
  635 +
  636 + public Integer getDirectiveState() {
  637 + return directiveState;
  638 + }
  639 +
  640 + public void setDirectiveState(Integer directiveState) {
  641 + this.directiveState = directiveState;
  642 + }
  643 +
  644 + @Override
  645 + public boolean equals(Object obj) {
  646 + try{
  647 + return this.id.equals(((ScheduleRealInfo)obj).getId());
  648 + }catch(Exception e){
  649 + return false;
  650 + }
  651 + }
  652 +
  653 + @Override
  654 + public int hashCode() {
  655 + return ("schedule_" + this.id).hashCode();
  656 + }
  657 +
  658 + public boolean isSflj() {
  659 + return sflj;
  660 + }
  661 +
  662 + public void setSflj(boolean sflj) {
  663 + this.sflj = sflj;
  664 + }
  665 +
  666 + /**
  667 + *
  668 + * @Title: setFcsjAll
  669 + * @Description: TODO(设置计划发车时间)
  670 + * @throws
  671 + */
  672 + public void setFcsjAll(String fcsj){
  673 + this.fcsjT = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + fcsj);
  674 + this.fcsj = fcsj;
  675 + }
  676 +
  677 + /**
  678 + *
  679 + * @Title: setFcsjAll
  680 + * @Description: TODO(设置计划发车时间)
  681 + * @throws
  682 + */
  683 + public void setFcsjAll(Long fcsjT){
  684 + this.fcsjT = fcsjT;
  685 + this.fcsj = fmtHHmm.print(fcsjT);
  686 + }
  687 +
  688 + /**
  689 + *
  690 + * @Title: setFcsjActualAll
  691 + * @Description: TODO(设置实际发车时间 字符串)
  692 + * @throws
  693 + */
  694 + public void setFcsjActualAll(String fcsjActual){
  695 + this.fcsjActualTime = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + fcsjActual);
  696 + this.fcsjActual = fcsjActual;
  697 + calcStatus();
  698 + }
  699 +
  700 + /**
  701 + *
  702 + * @Title: setFcsjActualAll
  703 + * @Description: TODO(设置实际发车时间 时间戳)
  704 + * @throws
  705 + */
  706 + public void setFcsjActualAll(Long t){
  707 +
  708 + this.fcsjActualTime = t;
  709 + if(null == t)
  710 + this.fcsjActual = null;
  711 + else
  712 + this.fcsjActual = fmtHHmm.print(t);
  713 +
  714 + //更新班次状态
  715 + calcStatus();
  716 + }
  717 +
  718 + /**
  719 + *
  720 + * @Title: setFcsjActualAll
  721 + * @Description: TODO(设置实际终点时间)
  722 + * @throws
  723 + */
  724 + public void setZdsjActualAll(Long t){
  725 + this.zdsjActualTime = t;
  726 +
  727 + if(null == t)
  728 + this.zdsjActual = null;
  729 + else
  730 + this.zdsjActual = fmtHHmm.print(t);
  731 +
  732 + //更新班次状态
  733 + calcStatus();
  734 + }
  735 +
  736 + /**
  737 + *
  738 + * @Title: setFcsjActualAll
  739 + * @Description: TODO(设置实际终点时间)
  740 + * @throws
  741 + */
  742 + public void setZdsjActualAll(String zdsjActual){
  743 + this.zdsjActualTime = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + zdsjActual);
  744 + this.zdsjActual = zdsjActual;
  745 +
  746 + calcStatus();
  747 + }
  748 +
  749 + public Long getSpId() {
  750 + return spId;
  751 + }
  752 +
  753 + public void setSpId(Long spId) {
  754 + this.spId = spId;
  755 + }
  756 +
  757 + public String getRealExecDate() {
  758 + return realExecDate;
  759 + }
  760 +
  761 + public void setRealExecDate(String realExecDate) {
  762 + this.realExecDate = realExecDate;
  763 + }
  764 +
  765 + public void calcStatus() {
  766 + if(this.status == -1)
  767 + return;
  768 +
  769 + this.status = 0;
  770 + if(StringUtils.isNotBlank(this.fcsjActual)){
  771 + this.status = 1;
  772 +
  773 + //进出场班次并且没有计划里程的
  774 + if((this.bcType.equals("out") || this.bcType.equals("in"))
  775 + && this.jhlc == null){
  776 + this.status = 2;
  777 + }
  778 + }
  779 + if(StringUtils.isNotBlank(this.zdsjActual))
  780 + this.status = 2;
  781 + }
  782 +
  783 + public void destroy(){
  784 + this.jhlc = 0.0;
  785 + if(this.isSflj())
  786 + this.jhlcOrig = 0.0;
  787 + this.status = -1;
  788 + this.clearFcsjActual();
  789 + }
  790 +
  791 + public boolean isDestroy(){
  792 + return this.status == -1;
  793 + }
  794 +
  795 +/* public boolean isNotDestroy(){
  796 + return this.status != -1;
  797 + }*/
  798 +
  799 + public Set<ChildTaskPlan> getcTasks() {
  800 + return cTasks;
  801 + }
  802 +
  803 +/* public void setcTasks(Set<ChildTaskPlan> cTasks) {
  804 + this.cTasks = cTasks;
  805 + }*/
  806 +
  807 + public String getScheduleDateStr() {
  808 + return scheduleDateStr;
  809 + }
  810 +
  811 + public void setScheduleDateStr(String scheduleDateStr) {
  812 + this.scheduleDateStr = scheduleDateStr;
  813 + }
  814 +
  815 + public void clearFcsjActual(){
  816 + this.setFcsjActual(null);
  817 + this.setFcsjActualTime(null);
  818 + this.calcStatus();
  819 + }
  820 +
  821 + //清除实际终点时间
  822 + public void clearZdsjActual(){
  823 + this.setZdsjActual(null);
  824 + this.setZdsjActualTime(null);
  825 +
  826 + calcStatus();
  827 + }
  828 +
  829 + public boolean isLate() {
  830 + return late;
  831 + }
  832 +
  833 + public void setLate(boolean late) {
  834 + this.late = late;
  835 + }
  836 +
  837 + public String getAdjustExps() {
  838 + return adjustExps;
  839 + }
  840 +
  841 + public void setAdjustExps(String adjustExps) {
  842 + this.adjustExps = adjustExps;
  843 + }
  844 +
  845 + public boolean isReissue() {
  846 + return reissue;
  847 + }
  848 +
  849 + public void setReissue(boolean reissue) {
  850 + this.reissue = reissue;
  851 + }
  852 +
  853 + public Double getRealMileage() {
  854 + return realMileage;
  855 + }
  856 +
  857 + public void setRealMileage(Double realMileage) {
  858 + this.realMileage = realMileage;
  859 + }
  860 +
  861 + public Double getJhlcOrig() {
  862 + return jhlcOrig;
  863 + }
  864 +
  865 + public void setJhlcOrig(Double jhlcOrig) {
  866 + this.jhlcOrig = jhlcOrig;
  867 + }
  868 +
  869 + public void reCalcLate() {
  870 + if(this.getStatus() == 0
  871 + && this.getFcsjActual() == null
  872 + && this.dfsjT < System.currentTimeMillis()){
  873 + this.setLate(true);
  874 + }
  875 + else
  876 + this.setLate(false);
  877 + }
  878 +
  879 + public String getRemark() {
  880 + return remark;
  881 + }
  882 +
  883 + public void setRemark(String remark) {
  884 + this.remark = remark;
  885 + }
  886 +
  887 + public float getLateMinute() {
  888 + return lateMinute;
  889 + }
  890 +
  891 + public void setLateMinute(float lateMinute) {
  892 + this.lateMinute = lateMinute;
  893 + }
  894 +
  895 + public boolean isLate2() {
  896 + return late2;
  897 + }
  898 +
  899 + public void setLate2(boolean late2) {
  900 + this.late2 = late2;
  901 + }
  902 +
  903 + public int getFcpSn() {
  904 + return fcpSn;
  905 + }
  906 +
  907 + public void setFcpSn(int fcpSn) {
  908 + this.fcpSn = fcpSn;
  909 + }
  910 +
  911 + public boolean _isInout(){
  912 + return this.getBcType().equals("out") || this.getBcType().equals("in");
  913 + }
  914 +
  915 + public boolean isDeleted() {
  916 + return deleted;
  917 + }
  918 +
  919 + public void setDeleted(boolean deleted) {
  920 + this.deleted = deleted;
  921 + }
  922 +
  923 + public int getSaveFailCount() {
  924 + return saveFailCount;
  925 + }
  926 +
  927 + public void setSaveFailCount(int saveFailCount) {
  928 + this.saveFailCount = saveFailCount;
  929 + }
  930 +
  931 + public int getSiginCompate() {
  932 + return siginCompate;
  933 + }
  934 +
  935 + public void setSiginCompate(int siginCompate) {
  936 + this.siginCompate = siginCompate;
  937 + }
  938 +
  939 + public Integer getDriftStatus() {
  940 + return driftStatus;
  941 + }
  942 +
  943 + public void setDriftStatus(Integer driftStatus) {
  944 + this.driftStatus = driftStatus;
  945 + }
  946 +
  947 + public boolean isCcService() {
  948 + return ccService;
  949 + }
  950 +
  951 + public void setCcService(boolean ccService) {
  952 + this.ccService = ccService;
  953 + }
  954 +
  955 + public String getMajorStationName() {
  956 + return majorStationName;
  957 + }
  958 +
  959 + public void setMajorStationName(String majorStationName) {
  960 + this.majorStationName = majorStationName;
  961 + }
  962 +}
  963 +
... ...
src/main/java/com/bsth/entity/result/CalcWaybill.java
1   -package com.bsth.entity.result;
2   -
3   -import java.util.Date;
4   -
5   -public class CalcWaybill {
6   - /* 主键*/
7   - private Long id;
8   - /* 公司代码*/
9   - private String gsdm;
10   - /* 公司名称*/
11   - private String gsname;
12   - /* 分公司代码*/
13   - private String fgsdm;
14   - /* 分公司名称*/
15   - private String fgsname;
16   - /* 日期*/
17   - private Date rq;
18   - /* 日期字符串*/
19   - private String rqStr;
20   - /* 线路编码*/
21   - private String xl;
22   - /* 线路名称*/
23   - private String xlName;
24   - /* 车辆自编号*/
25   - private String cl;
26   - /* 路牌名字*/
27   - private String lp;
28   - /* 驾驶员工号*/
29   - private String jGh;
30   - /* 驾驶员名字*/
31   - private String jName;
32   - /* 售票员工号*/
33   - private String sGh;
34   - /* 售票员名字*/
35   - private String sName;
36   - /* 计划营运班次*/
37   - private int jhyybc;
38   - /* 计划早高峰营运班次*/
39   - private int jhyybczgf;
40   - /* 计划晚高峰营运班次*/
41   - private int jhyybcwgf;
42   - /* 计划空驶班次*/
43   - private int jhksbc;
44   - /* 计划进出场班次*/
45   - private int jhjccbc;
46   - /* 计划营运里程*/
47   - private Double jhyylc;
48   - /* 计划空驶里程*/
49   - private Double jhkslc;
50   - /* 计划进出场里程*/
51   - private Double jhjcclc;
52   - /* 实际营运班次*/
53   - private int sjyybc;
54   - /* 实际早高峰营运班次*/
55   - private int sjyybczgf;
56   - /* 实际晚高峰营运班次*/
57   - private int sjyybcwgf;
58   - /* 实际空驶班次*/
59   - private int sjksbc;
60   - /* 实际进出场班次*/
61   - private int sjjccbc;
62   - /* 实际营运里程*/
63   - private Double sjyylc;
64   - /* 实际空驶里程*/
65   - private Double sjkslc;
66   - /* 实际进出场里程*/
67   - private Double sjjcclc;
68   - /* 临加班次*/
69   - private int ljbc;
70   - /* 临加早高峰班次*/
71   - private int ljbczgf;
72   - /* 临加晚高峰班次*/
73   - private int ljbcwgf;
74   - /* 临加营运里程*/
75   - private Double ljyylc;
76   - /* 临加空驶里程*/
77   - private Double ljkslc;
78   - /* 临加进出场里程*/
79   - private Double ljjcclc;
80   - /* 烂班班次*/
81   - private int lbbc;
82   - /* 烂班里程*/
83   - private Double lblc;
84   - /* 路阻*/
85   - private Double lblcLz;
86   - /* 吊慢*/
87   - private Double lblcDm;
88   - /* 故障*/
89   - private Double lblcGz;
90   - /* 纠纷*/
91   - private Double lblcJf;
92   - /* 肇事*/
93   - private Double lblcZs;
94   - /* 缺人*/
95   - private Double lblcQr;
96   - /* 缺车*/
97   - private Double lblcQc;
98   - /* 客稀*/
99   - private Double lblcKx;
100   - /* 气候*/
101   - private Double lblcQh;
102   - /* 援外*/
103   - private Double lblcYw;
104   - /* 其他*/
105   - private Double lblcQt;
106   - /* 放站班次*/
107   - private int fzbc;
108   - /* 放站早高峰班次*/
109   - private int fzbczgf;
110   - /* 放站晚高峰班次*/
111   - private int fgbcwgf;
112   - /* 掉头班次*/
113   - private int dtbc;
114   - /* 掉头早高峰班次*/
115   - private int dtbczgf;
116   - /* 掉头晚高峰班次*/
117   - private int dtbcwgf;
118   - /* 计划内营运公里*/
119   - private Double jhnyygl;
120   - /* 计划外营运公里*/
121   - private Double jhwyygl;
122   - /* 计划内进出场空驶*/
123   - private Double jhnjcc;
124   - /* 计划外进出场空驶*/
125   - private Double jhwjcc;
126   - /* 故障进出场*/
127   - private Double gzjcc;
128   - /* 肇事进出场*/
129   - private Double zsjcc;
130   - /* 纠纷进出场*/
131   - private Double jfjcc;
132   - /* 其他进出场*/
133   - private Double qtjcc;
134   - /* 实际空放空驶*/
135   - private Double kfks;
136   - /* 创建时间*/
137   - private Date createTime;
138   - /* 修改时间*/
139   - private Date updateTime;
140   - public Long getId() {
141   - return id;
142   - }
143   - public void setId(Long id) {
144   - this.id = id;
145   - }
146   - public String getGsdm() {
147   - return gsdm;
148   - }
149   - public void setGsdm(String gsdm) {
150   - this.gsdm = gsdm;
151   - }
152   - public String getGsname() {
153   - return gsname;
154   - }
155   - public void setGsname(String gsname) {
156   - this.gsname = gsname;
157   - }
158   - public String getFgsdm() {
159   - return fgsdm;
160   - }
161   - public void setFgsdm(String fgsdm) {
162   - this.fgsdm = fgsdm;
163   - }
164   - public String getFgsname() {
165   - return fgsname;
166   - }
167   - public void setFgsname(String fgsname) {
168   - this.fgsname = fgsname;
169   - }
170   - public Date getRq() {
171   - return rq;
172   - }
173   - public void setRq(Date rq) {
174   - this.rq = rq;
175   - }
176   - public String getRqStr() {
177   - return rqStr;
178   - }
179   - public void setRqStr(String rqStr) {
180   - this.rqStr = rqStr;
181   - }
182   - public String getXl() {
183   - return xl;
184   - }
185   - public void setXl(String xl) {
186   - this.xl = xl;
187   - }
188   - public String getXlName() {
189   - return xlName;
190   - }
191   - public void setXlName(String xlName) {
192   - this.xlName = xlName;
193   - }
194   - public String getCl() {
195   - return cl;
196   - }
197   - public void setCl(String cl) {
198   - this.cl = cl;
199   - }
200   - public String getLp() {
201   - return lp;
202   - }
203   - public void setLp(String lp) {
204   - this.lp = lp;
205   - }
206   - public String getjGh() {
207   - return jGh;
208   - }
209   - public void setjGh(String jGh) {
210   - this.jGh = jGh;
211   - }
212   - public String getjName() {
213   - return jName;
214   - }
215   - public void setjName(String jName) {
216   - this.jName = jName;
217   - }
218   - public String getsGh() {
219   - return sGh;
220   - }
221   - public void setsGh(String sGh) {
222   - this.sGh = sGh;
223   - }
224   - public String getsName() {
225   - return sName;
226   - }
227   - public void setsName(String sName) {
228   - this.sName = sName;
229   - }
230   - public int getJhyybc() {
231   - return jhyybc;
232   - }
233   - public void setJhyybc(int jhyybc) {
234   - this.jhyybc = jhyybc;
235   - }
236   - public int getJhyybczgf() {
237   - return jhyybczgf;
238   - }
239   - public void setJhyybczgf(int jhyybczgf) {
240   - this.jhyybczgf = jhyybczgf;
241   - }
242   - public int getJhyybcwgf() {
243   - return jhyybcwgf;
244   - }
245   - public void setJhyybcwgf(int jhyybcwgf) {
246   - this.jhyybcwgf = jhyybcwgf;
247   - }
248   - public int getJhksbc() {
249   - return jhksbc;
250   - }
251   - public void setJhksbc(int jhksbc) {
252   - this.jhksbc = jhksbc;
253   - }
254   - public int getJhjccbc() {
255   - return jhjccbc;
256   - }
257   - public void setJhjccbc(int jhjccbc) {
258   - this.jhjccbc = jhjccbc;
259   - }
260   - public Double getJhyylc() {
261   - return jhyylc;
262   - }
263   - public void setJhyylc(Double jhyylc) {
264   - this.jhyylc = jhyylc;
265   - }
266   - public Double getJhkslc() {
267   - return jhkslc;
268   - }
269   - public void setJhkslc(Double jhkslc) {
270   - this.jhkslc = jhkslc;
271   - }
272   - public Double getJhjcclc() {
273   - return jhjcclc;
274   - }
275   - public void setJhjcclc(Double jhjcclc) {
276   - this.jhjcclc = jhjcclc;
277   - }
278   - public int getSjyybc() {
279   - return sjyybc;
280   - }
281   - public void setSjyybc(int sjyybc) {
282   - this.sjyybc = sjyybc;
283   - }
284   - public int getSjyybczgf() {
285   - return sjyybczgf;
286   - }
287   - public void setSjyybczgf(int sjyybczgf) {
288   - this.sjyybczgf = sjyybczgf;
289   - }
290   - public int getSjyybcwgf() {
291   - return sjyybcwgf;
292   - }
293   - public void setSjyybcwgf(int sjyybcwgf) {
294   - this.sjyybcwgf = sjyybcwgf;
295   - }
296   - public int getSjksbc() {
297   - return sjksbc;
298   - }
299   - public void setSjksbc(int sjksbc) {
300   - this.sjksbc = sjksbc;
301   - }
302   - public int getSjjccbc() {
303   - return sjjccbc;
304   - }
305   - public void setSjjccbc(int sjjccbc) {
306   - this.sjjccbc = sjjccbc;
307   - }
308   - public Double getSjyylc() {
309   - return sjyylc;
310   - }
311   - public void setSjyylc(Double sjyylc) {
312   - this.sjyylc = sjyylc;
313   - }
314   - public Double getSjkslc() {
315   - return sjkslc;
316   - }
317   - public void setSjkslc(Double sjkslc) {
318   - this.sjkslc = sjkslc;
319   - }
320   - public Double getSjjcclc() {
321   - return sjjcclc;
322   - }
323   - public void setSjjcclc(Double sjjcclc) {
324   - this.sjjcclc = sjjcclc;
325   - }
326   - public int getLjbc() {
327   - return ljbc;
328   - }
329   - public void setLjbc(int ljbc) {
330   - this.ljbc = ljbc;
331   - }
332   - public int getLjbczgf() {
333   - return ljbczgf;
334   - }
335   - public void setLjbczgf(int ljbczgf) {
336   - this.ljbczgf = ljbczgf;
337   - }
338   - public int getLjbcwgf() {
339   - return ljbcwgf;
340   - }
341   - public void setLjbcwgf(int ljbcwgf) {
342   - this.ljbcwgf = ljbcwgf;
343   - }
344   - public Double getLjyylc() {
345   - return ljyylc;
346   - }
347   - public void setLjyylc(Double ljyylc) {
348   - this.ljyylc = ljyylc;
349   - }
350   - public Double getLjkslc() {
351   - return ljkslc;
352   - }
353   - public void setLjkslc(Double ljkslc) {
354   - this.ljkslc = ljkslc;
355   - }
356   - public Double getLjjcclc() {
357   - return ljjcclc;
358   - }
359   - public void setLjjcclc(Double ljjcclc) {
360   - this.ljjcclc = ljjcclc;
361   - }
362   - public int getLbbc() {
363   - return lbbc;
364   - }
365   - public void setLbbc(int lbbc) {
366   - this.lbbc = lbbc;
367   - }
368   - public Double getLblc() {
369   - return lblc;
370   - }
371   - public void setLblc(Double lblc) {
372   - this.lblc = lblc;
373   - }
374   - public Double getLblcLz() {
375   - return lblcLz;
376   - }
377   - public void setLblcLz(Double lblcLz) {
378   - this.lblcLz = lblcLz;
379   - }
380   - public Double getLblcDm() {
381   - return lblcDm;
382   - }
383   - public void setLblcDm(Double lblcDm) {
384   - this.lblcDm = lblcDm;
385   - }
386   - public Double getLblcGz() {
387   - return lblcGz;
388   - }
389   - public void setLblcGz(Double lblcGz) {
390   - this.lblcGz = lblcGz;
391   - }
392   - public Double getLblcJf() {
393   - return lblcJf;
394   - }
395   - public void setLblcJf(Double lblcJf) {
396   - this.lblcJf = lblcJf;
397   - }
398   - public Double getLblcZs() {
399   - return lblcZs;
400   - }
401   - public void setLblcZs(Double lblcZs) {
402   - this.lblcZs = lblcZs;
403   - }
404   - public Double getLblcQr() {
405   - return lblcQr;
406   - }
407   - public void setLblcQr(Double lblcQr) {
408   - this.lblcQr = lblcQr;
409   - }
410   - public Double getLblcQc() {
411   - return lblcQc;
412   - }
413   - public void setLblcQc(Double lblcQc) {
414   - this.lblcQc = lblcQc;
415   - }
416   - public Double getLblcKx() {
417   - return lblcKx;
418   - }
419   - public void setLblcKx(Double lblcKx) {
420   - this.lblcKx = lblcKx;
421   - }
422   - public Double getLblcQh() {
423   - return lblcQh;
424   - }
425   - public void setLblcQh(Double lblcQh) {
426   - this.lblcQh = lblcQh;
427   - }
428   - public Double getLblcYw() {
429   - return lblcYw;
430   - }
431   - public void setLblcYw(Double lblcYw) {
432   - this.lblcYw = lblcYw;
433   - }
434   - public Double getLblcQt() {
435   - return lblcQt;
436   - }
437   - public void setLblcQt(Double lblcQt) {
438   - this.lblcQt = lblcQt;
439   - }
440   - public int getFzbc() {
441   - return fzbc;
442   - }
443   - public void setFzbc(int fzbc) {
444   - this.fzbc = fzbc;
445   - }
446   - public int getFzbczgf() {
447   - return fzbczgf;
448   - }
449   - public void setFzbczgf(int fzbczgf) {
450   - this.fzbczgf = fzbczgf;
451   - }
452   - public int getFgbcwgf() {
453   - return fgbcwgf;
454   - }
455   - public void setFgbcwgf(int fgbcwgf) {
456   - this.fgbcwgf = fgbcwgf;
457   - }
458   - public int getDtbc() {
459   - return dtbc;
460   - }
461   - public void setDtbc(int dtbc) {
462   - this.dtbc = dtbc;
463   - }
464   - public int getDtbczgf() {
465   - return dtbczgf;
466   - }
467   - public void setDtbczgf(int dtbczgf) {
468   - this.dtbczgf = dtbczgf;
469   - }
470   - public int getDtbcwgf() {
471   - return dtbcwgf;
472   - }
473   - public void setDtbcwgf(int dtbcwgf) {
474   - this.dtbcwgf = dtbcwgf;
475   - }
476   - public Double getJhnyygl() {
477   - return jhnyygl;
478   - }
479   - public void setJhnyygl(Double jhnyygl) {
480   - this.jhnyygl = jhnyygl;
481   - }
482   - public Double getJhwyygl() {
483   - return jhwyygl;
484   - }
485   - public void setJhwyygl(Double jhwyygl) {
486   - this.jhwyygl = jhwyygl;
487   - }
488   - public Double getJhnjcc() {
489   - return jhnjcc;
490   - }
491   - public void setJhnjcc(Double jhnjcc) {
492   - this.jhnjcc = jhnjcc;
493   - }
494   - public Double getJhwjcc() {
495   - return jhwjcc;
496   - }
497   - public void setJhwjcc(Double jhwjcc) {
498   - this.jhwjcc = jhwjcc;
499   - }
500   - public Double getGzjcc() {
501   - return gzjcc;
502   - }
503   - public void setGzjcc(Double gzjcc) {
504   - this.gzjcc = gzjcc;
505   - }
506   - public Double getZsjcc() {
507   - return zsjcc;
508   - }
509   - public void setZsjcc(Double zsjcc) {
510   - this.zsjcc = zsjcc;
511   - }
512   - public Double getJfjcc() {
513   - return jfjcc;
514   - }
515   - public void setJfjcc(Double jfjcc) {
516   - this.jfjcc = jfjcc;
517   - }
518   - public Double getQtjcc() {
519   - return qtjcc;
520   - }
521   - public void setQtjcc(Double qtjcc) {
522   - this.qtjcc = qtjcc;
523   - }
524   - public Double getKfks() {
525   - return kfks;
526   - }
527   - public void setKfks(Double kfks) {
528   - this.kfks = kfks;
529   - }
530   - public Date getCreateTime() {
531   - return createTime;
532   - }
533   - public void setCreateTime(Date createTime) {
534   - this.createTime = createTime;
535   - }
536   - public Date getUpdateTime() {
537   - return updateTime;
538   - }
539   - public void setUpdateTime(Date updateTime) {
540   - this.updateTime = updateTime;
541   - }
542   -
543   -
544   -
545   -}
  1 +package com.bsth.entity.result;
  2 +
  3 +import java.util.Date;
  4 +
  5 +public class CalcWaybill {
  6 + /* 主键*/
  7 + private Long id;
  8 + /* 公司代码*/
  9 + private String gsdm;
  10 + /* 公司名称*/
  11 + private String gsname;
  12 + /* 分公司代码*/
  13 + private String fgsdm;
  14 + /* 分公司名称*/
  15 + private String fgsname;
  16 + /* 日期*/
  17 + private Date rq;
  18 + /* 日期字符串*/
  19 + private String rqStr;
  20 + /* 线路编码*/
  21 + private String xl;
  22 + /* 线路名称*/
  23 + private String xlName;
  24 + /* 车辆自编号*/
  25 + private String cl;
  26 + /* 路牌名字*/
  27 + private String lp;
  28 + /* 驾驶员工号*/
  29 + private String jGh;
  30 + /* 驾驶员名字*/
  31 + private String jName;
  32 + /* 售票员工号*/
  33 + private String sGh;
  34 + /* 售票员名字*/
  35 + private String sName;
  36 + /* 计划营运班次*/
  37 + private int jhyybc;
  38 + /* 计划早高峰营运班次*/
  39 + private int jhyybczgf;
  40 + /* 计划晚高峰营运班次*/
  41 + private int jhyybcwgf;
  42 + /* 计划非营运班次*/
  43 + private int jhfyybc;
  44 + /* 计划营运里程*/
  45 + private Double jhyylc;
  46 + /* 计划非营运里程*/
  47 + private Double jhfyylc;
  48 + /* 实际营运班次*/
  49 + private int sjyybc;
  50 + /* 实际早高峰营运班次*/
  51 + private int sjyybczgf;
  52 + /* 实际晚高峰营运班次*/
  53 + private int sjyybcwgf;
  54 + /* 实际非营运班次*/
  55 + private int sjfyybc;
  56 + /* 实际营运里程*/
  57 + private Double sjyylc;
  58 + /* 实际非营运里程*/
  59 + private Double sjfyylc;
  60 + /* 临加班次*/
  61 + private int ljbc;
  62 + /* 临加早高峰班次*/
  63 + private int ljbczgf;
  64 + /* 临加晚高峰班次*/
  65 + private int ljbcwgf;
  66 + /* 临加营运里程*/
  67 + private Double ljyylc;
  68 + /* 临加非营运里程*/
  69 + private Double ljfyylc;
  70 + /* 烂班班次*/
  71 + private int lbbc;
  72 + /* 烂班里程*/
  73 + private Double lblc;
  74 + /* 路阻*/
  75 + private Double lblcLz;
  76 + /* 吊慢*/
  77 + private Double lblcDm;
  78 + /* 故障*/
  79 + private Double lblcGz;
  80 + /* 纠纷*/
  81 + private Double lblcJf;
  82 + /* 肇事*/
  83 + private Double lblcZs;
  84 + /* 缺人*/
  85 + private Double lblcQr;
  86 + /* 缺车*/
  87 + private Double lblcQc;
  88 + /* 客稀*/
  89 + private Double lblcKx;
  90 + /* 气候*/
  91 + private Double lblcQh;
  92 + /* 援外*/
  93 + private Double lblcYw;
  94 + /* 其他*/
  95 + private Double lblcQt;
  96 + /* 放站班次*/
  97 + private int fzbc;
  98 + /* 放站早高峰班次*/
  99 + private int fzbczgf;
  100 + /* 放站晚高峰班次*/
  101 + private int fzbcwgf;
  102 + /* 掉头班次*/
  103 + private int dtbc;
  104 + /* 掉头早高峰班次*/
  105 + private int dtbczgf;
  106 + /* 掉头晚高峰班次*/
  107 + private int dtbcwgf;
  108 + /* 创建时间*/
  109 + private Date createTime;
  110 + /* 修改时间*/
  111 + private Date updateTime;
  112 + public Long getId() {
  113 + return id;
  114 + }
  115 + public void setId(Long id) {
  116 + this.id = id;
  117 + }
  118 + public String getGsdm() {
  119 + return gsdm;
  120 + }
  121 + public void setGsdm(String gsdm) {
  122 + this.gsdm = gsdm;
  123 + }
  124 + public String getGsname() {
  125 + return gsname;
  126 + }
  127 + public void setGsname(String gsname) {
  128 + this.gsname = gsname;
  129 + }
  130 + public String getFgsdm() {
  131 + return fgsdm;
  132 + }
  133 + public void setFgsdm(String fgsdm) {
  134 + this.fgsdm = fgsdm;
  135 + }
  136 + public String getFgsname() {
  137 + return fgsname;
  138 + }
  139 + public void setFgsname(String fgsname) {
  140 + this.fgsname = fgsname;
  141 + }
  142 + public Date getRq() {
  143 + return rq;
  144 + }
  145 + public void setRq(Date rq) {
  146 + this.rq = rq;
  147 + }
  148 + public String getRqStr() {
  149 + return rqStr;
  150 + }
  151 + public void setRqStr(String rqStr) {
  152 + this.rqStr = rqStr;
  153 + }
  154 + public String getXl() {
  155 + return xl;
  156 + }
  157 + public void setXl(String xl) {
  158 + this.xl = xl;
  159 + }
  160 + public String getXlName() {
  161 + return xlName;
  162 + }
  163 + public void setXlName(String xlName) {
  164 + this.xlName = xlName;
  165 + }
  166 + public String getCl() {
  167 + return cl;
  168 + }
  169 + public void setCl(String cl) {
  170 + this.cl = cl;
  171 + }
  172 + public String getLp() {
  173 + return lp;
  174 + }
  175 + public void setLp(String lp) {
  176 + this.lp = lp;
  177 + }
  178 + public String getjGh() {
  179 + return jGh;
  180 + }
  181 + public void setjGh(String jGh) {
  182 + this.jGh = jGh;
  183 + }
  184 + public String getjName() {
  185 + return jName;
  186 + }
  187 + public void setjName(String jName) {
  188 + this.jName = jName;
  189 + }
  190 + public String getsGh() {
  191 + return sGh;
  192 + }
  193 + public void setsGh(String sGh) {
  194 + this.sGh = sGh;
  195 + }
  196 + public String getsName() {
  197 + return sName;
  198 + }
  199 + public void setsName(String sName) {
  200 + this.sName = sName;
  201 + }
  202 + public int getJhyybc() {
  203 + return jhyybc;
  204 + }
  205 + public void setJhyybc(int jhyybc) {
  206 + this.jhyybc = jhyybc;
  207 + }
  208 + public int getJhyybczgf() {
  209 + return jhyybczgf;
  210 + }
  211 + public void setJhyybczgf(int jhyybczgf) {
  212 + this.jhyybczgf = jhyybczgf;
  213 + }
  214 + public int getJhyybcwgf() {
  215 + return jhyybcwgf;
  216 + }
  217 + public void setJhyybcwgf(int jhyybcwgf) {
  218 + this.jhyybcwgf = jhyybcwgf;
  219 + }
  220 + public int getJhfyybc() {
  221 + return jhfyybc;
  222 + }
  223 + public void setJhfyybc(int jhfyybc) {
  224 + this.jhfyybc = jhfyybc;
  225 + }
  226 + public Double getJhyylc() {
  227 + return jhyylc;
  228 + }
  229 + public void setJhyylc(Double jhyylc) {
  230 + this.jhyylc = jhyylc;
  231 + }
  232 + public Double getJhfyylc() {
  233 + return jhfyylc;
  234 + }
  235 + public void setJhfyylc(Double jhfyylc) {
  236 + this.jhfyylc = jhfyylc;
  237 + }
  238 + public int getSjyybc() {
  239 + return sjyybc;
  240 + }
  241 + public void setSjyybc(int sjyybc) {
  242 + this.sjyybc = sjyybc;
  243 + }
  244 + public int getSjyybczgf() {
  245 + return sjyybczgf;
  246 + }
  247 + public void setSjyybczgf(int sjyybczgf) {
  248 + this.sjyybczgf = sjyybczgf;
  249 + }
  250 + public int getSjyybcwgf() {
  251 + return sjyybcwgf;
  252 + }
  253 + public void setSjyybcwgf(int sjyybcwgf) {
  254 + this.sjyybcwgf = sjyybcwgf;
  255 + }
  256 + public int getSjfyybc() {
  257 + return sjfyybc;
  258 + }
  259 + public void setSjfyybc(int sjfyybc) {
  260 + this.sjfyybc = sjfyybc;
  261 + }
  262 + public Double getSjyylc() {
  263 + return sjyylc;
  264 + }
  265 + public void setSjyylc(Double sjyylc) {
  266 + this.sjyylc = sjyylc;
  267 + }
  268 + public Double getSjfyylc() {
  269 + return sjfyylc;
  270 + }
  271 + public void setSjfyylc(Double sjfyylc) {
  272 + this.sjfyylc = sjfyylc;
  273 + }
  274 + public int getLjbc() {
  275 + return ljbc;
  276 + }
  277 + public void setLjbc(int ljbc) {
  278 + this.ljbc = ljbc;
  279 + }
  280 + public int getLjbczgf() {
  281 + return ljbczgf;
  282 + }
  283 + public void setLjbczgf(int ljbczgf) {
  284 + this.ljbczgf = ljbczgf;
  285 + }
  286 + public int getLjbcwgf() {
  287 + return ljbcwgf;
  288 + }
  289 + public void setLjbcwgf(int ljbcwgf) {
  290 + this.ljbcwgf = ljbcwgf;
  291 + }
  292 + public Double getLjyylc() {
  293 + return ljyylc;
  294 + }
  295 + public void setLjyylc(Double ljyylc) {
  296 + this.ljyylc = ljyylc;
  297 + }
  298 + public Double getLjfyylc() {
  299 + return ljfyylc;
  300 + }
  301 + public void setLjfyylc(Double ljfyylc) {
  302 + this.ljfyylc = ljfyylc;
  303 + }
  304 + public int getLbbc() {
  305 + return lbbc;
  306 + }
  307 + public void setLbbc(int lbbc) {
  308 + this.lbbc = lbbc;
  309 + }
  310 + public Double getLblc() {
  311 + return lblc;
  312 + }
  313 + public void setLblc(Double lblc) {
  314 + this.lblc = lblc;
  315 + }
  316 + public Double getLblcLz() {
  317 + return lblcLz;
  318 + }
  319 + public void setLblcLz(Double lblcLz) {
  320 + this.lblcLz = lblcLz;
  321 + }
  322 + public Double getLblcDm() {
  323 + return lblcDm;
  324 + }
  325 + public void setLblcDm(Double lblcDm) {
  326 + this.lblcDm = lblcDm;
  327 + }
  328 + public Double getLblcGz() {
  329 + return lblcGz;
  330 + }
  331 + public void setLblcGz(Double lblcGz) {
  332 + this.lblcGz = lblcGz;
  333 + }
  334 + public Double getLblcJf() {
  335 + return lblcJf;
  336 + }
  337 + public void setLblcJf(Double lblcJf) {
  338 + this.lblcJf = lblcJf;
  339 + }
  340 + public Double getLblcZs() {
  341 + return lblcZs;
  342 + }
  343 + public void setLblcZs(Double lblcZs) {
  344 + this.lblcZs = lblcZs;
  345 + }
  346 + public Double getLblcQr() {
  347 + return lblcQr;
  348 + }
  349 + public void setLblcQr(Double lblcQr) {
  350 + this.lblcQr = lblcQr;
  351 + }
  352 + public Double getLblcQc() {
  353 + return lblcQc;
  354 + }
  355 + public void setLblcQc(Double lblcQc) {
  356 + this.lblcQc = lblcQc;
  357 + }
  358 + public Double getLblcKx() {
  359 + return lblcKx;
  360 + }
  361 + public void setLblcKx(Double lblcKx) {
  362 + this.lblcKx = lblcKx;
  363 + }
  364 + public Double getLblcQh() {
  365 + return lblcQh;
  366 + }
  367 + public void setLblcQh(Double lblcQh) {
  368 + this.lblcQh = lblcQh;
  369 + }
  370 + public Double getLblcYw() {
  371 + return lblcYw;
  372 + }
  373 + public void setLblcYw(Double lblcYw) {
  374 + this.lblcYw = lblcYw;
  375 + }
  376 + public Double getLblcQt() {
  377 + return lblcQt;
  378 + }
  379 + public void setLblcQt(Double lblcQt) {
  380 + this.lblcQt = lblcQt;
  381 + }
  382 + public int getFzbc() {
  383 + return fzbc;
  384 + }
  385 + public void setFzbc(int fzbc) {
  386 + this.fzbc = fzbc;
  387 + }
  388 + public int getFzbczgf() {
  389 + return fzbczgf;
  390 + }
  391 + public void setFzbczgf(int fzbczgf) {
  392 + this.fzbczgf = fzbczgf;
  393 + }
  394 + public int getFzbcwgf() {
  395 + return fzbcwgf;
  396 + }
  397 + public void setFzbcwgf(int fzbcwgf) {
  398 + this.fzbcwgf = fzbcwgf;
  399 + }
  400 + public int getDtbc() {
  401 + return dtbc;
  402 + }
  403 + public void setDtbc(int dtbc) {
  404 + this.dtbc = dtbc;
  405 + }
  406 + public int getDtbczgf() {
  407 + return dtbczgf;
  408 + }
  409 + public void setDtbczgf(int dtbczgf) {
  410 + this.dtbczgf = dtbczgf;
  411 + }
  412 + public int getDtbcwgf() {
  413 + return dtbcwgf;
  414 + }
  415 + public void setDtbcwgf(int dtbcwgf) {
  416 + this.dtbcwgf = dtbcwgf;
  417 + }
  418 + public Date getCreateTime() {
  419 + return createTime;
  420 + }
  421 + public void setCreateTime(Date createTime) {
  422 + this.createTime = createTime;
  423 + }
  424 + public Date getUpdateTime() {
  425 + return updateTime;
  426 + }
  427 + public void setUpdateTime(Date updateTime) {
  428 + this.updateTime = updateTime;
  429 + }
  430 +
  431 +
  432 +
  433 +}
... ...
src/main/java/com/bsth/handler/UserCarCountHandler.java
1   -package com.bsth.handler;
2   -
3   -import com.bsth.entity.LineConfig;
4   -import com.bsth.entity.ScheduleRealInfo;
5   -import com.bsth.entity.result.WorkingHours_jsy;
6   -import com.bsth.service.LineConfigService;
7   -import com.bsth.service.ScheduleRealInfoService;
8   -import com.bsth.util.ConvertUtil;
9   -import com.google.common.collect.ArrayListMultimap;
10   -import com.mysql.fabric.xmlrpc.base.Data;
11   -
12   -import org.joda.time.DateTime;
13   -import org.slf4j.Logger;
14   -import org.slf4j.LoggerFactory;
15   -import org.springframework.beans.factory.annotation.Autowired;
16   -import org.springframework.jdbc.core.BatchPreparedStatementSetter;
17   -import org.springframework.jdbc.core.JdbcTemplate;
18   -import org.springframework.jdbc.datasource.DataSourceTransactionManager;
19   -import org.springframework.stereotype.Component;
20   -import org.springframework.transaction.TransactionDefinition;
21   -import org.springframework.transaction.TransactionStatus;
22   -import org.springframework.transaction.support.DefaultTransactionDefinition;
23   -
24   -import java.lang.reflect.Field;
25   -import java.sql.PreparedStatement;
26   -import java.sql.SQLException;
27   -import java.text.SimpleDateFormat;
28   -import java.util.*;
29   -
30   -/**
31   - * 人员车辆班次里程处理程序
32   - */
33   -@Component
34   -public class UserCarCountHandler {
35   -
36   - /**
37   - * 结算规则, 周几 ——> 结算前几天 (考虑间隔)
38   - */
39   - private static Map<Integer, Integer> runRuleMap;
40   -
41   - /**
42   - * 间隔1天(留一天的时间给各个公司检查路单)
43   - */
44   - private final static int DAY_SPACE = 1;
45   -
46   - /**
47   - * 判定分班时间阈值
48   - */
49   - private final static long FB_THRESHOLD_TIME = 1000 * 60 * 60 * 2;
50   -
51   - @Autowired
52   - ScheduleRealInfoService scheduleRealInfoService;
53   - @Autowired
54   - LineConfigService lineConfigService;
55   -
56   - @Autowired
57   - JdbcTemplate jdbcTemplate;
58   -
59   - Logger logger = LoggerFactory.getLogger(this.getClass());
60   -
61   - static {
62   - //0 是周天
63   - runRuleMap = new HashMap<>();
64   - runRuleMap.put(1, 0);
65   - runRuleMap.put(2, 3);
66   - runRuleMap.put(3, 1);
67   - runRuleMap.put(4, 1);
68   - runRuleMap.put(5, 1);
69   - runRuleMap.put(6, 1);
70   - runRuleMap.put(0, 0);
71   - }
72   -
73   - /*public void calc() {
74   - DateTime dt = DateTime.now();
75   - Calendar calendar = Calendar.getInstance();
76   - calendar.setTime(dt.toDate());
77   - //今天要结算多少天的工时
78   - int count = runRuleMap.get(calendar.get(Calendar.DAY_OF_WEEK) - 1);
79   -
80   - dt = dt.minusDays(DAY_SPACE + count);
81   - String rq;
82   - for (int i = 0; i < count; i++) {
83   - rq = dt.toString("yyyy-MM-dd");
84   - calc(rq);
85   - dt = dt.plusDays(1);
86   - }
87   - }*/
88   -
89   - public void calcLast(){
90   - //计算前一天班次里程
91   - Date dNow = new Date();
92   - Calendar calendar = Calendar.getInstance();
93   - calendar.setTime(dNow);
94   - calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
95   - Date dBefore = calendar.getTime(); //得到前一天的时间
96   - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
97   - SimpleDateFormat sdf2=new SimpleDateFormat(" HH:mm");//得到当前时间
98   - String lastRq = sdf.format(dBefore); //格式化前一天
99   - String time=sdf2.format(dNow); //格式化当前时间
100   - String times[] =time.split(":");
101   - time=times[0]+times[1];
102   - int t=Integer.parseInt(times[0])*60+Integer.parseInt(times[1]);
103   - calc(lastRq,t);
104   -
105   - }
106   -
107   - private void calc(String rq,int t){
108   - try {
109   - List<LineConfig> listLineConfig=lineConfigService.findAllList();
110   - for (int i = 0; i < listLineConfig.size(); i++) {
111   - LineConfig lineConfig=listLineConfig.get(i);
112   - String lineCode=lineConfig.getLineCode();
113   - String startOpt=lineConfig.getStartOpt();
114   - String times[] =startOpt.split(":");
115   - int time=Integer.parseInt(times[0])*60+Integer.parseInt(times[1])-30;
116   - //线路重新排版前30分钟 统计该线路前一天的 班次 里程
117   - if(time>t){
118   - //查询该线路前一天的排班
119   - }
120   -
121   - }
122   -
123   - }catch (Exception e) {
124   - logger.error("", e);
125   - }
126   - }
127   -
128   - /*private void calc(String rq) {
129   - try {
130   - logger.info("开始结算工时: " + rq);
131   - List<WorkingHours_jsy> list = new ArrayList<>();
132   - //实际班次,路单数据
133   - List<ScheduleRealInfo> sjList = scheduleRealInfoService.findAll(rq);
134   - //计划班次,计调数据
135   - List<ScheduleRealInfo> jhList = scheduleRealInfoService.findAll_JH(rq);
136   -
137   - //附加停站时间
138   - addStopTime(sjList);
139   - addStopTime(jhList);
140   -
141   - //合计工时
142   - List<WorkingHours_jsy> jhArray = count(jhList, true);
143   - List<WorkingHours_jsy> sjArray = count(sjList, false);
144   -
145   - //合并计划和实际
146   - Map<String, WorkingHours_jsy> merges = new HashMap<>();
147   - for (WorkingHours_jsy jh : jhArray) {
148   - jh.setHoursSj(0);
149   - merges.put(jh.keys(), jh);
150   - }
151   -
152   - String key;
153   - for (WorkingHours_jsy sj : sjArray) {
154   - key = sj.keys();
155   - if (merges.containsKey(key)) {
156   - merges.get(key).setHoursSj(sj.getHoursSj());
157   - } else {
158   - sj.setHoursJh(0);
159   - merges.put(key, sj);
160   - }
161   - }
162   - //入库
163   - save(new ArrayList(merges.values()));
164   - logger.info("结算工时成功: " + rq + " -size: " + merges.values().size());
165   - } catch (Exception e) {
166   - logger.error("", e);
167   - }
168   - }*/
169   -
170   - private void addStopTime(List<ScheduleRealInfo> list) throws NoSuchFieldException {
171   - Class clazz = ScheduleRealInfo.class;
172   - //按驾驶员分组班次
173   - ArrayListMultimap<String, ScheduleRealInfo> multimap = new ConvertUtil<ScheduleRealInfo>()
174   - .groupMultiList(list, "", clazz.getDeclaredField("jGh"));
175   -
176   - //为班次附上停站时间
177   - Set<String> ks = multimap.keySet();
178   - for (String k : ks) {
179   - calcOne(multimap.get(k));
180   - }
181   - }
182   -
183   - private List<WorkingHours_jsy> count(List<ScheduleRealInfo> list, boolean isJh) throws NoSuchFieldException {
184   - List<WorkingHours_jsy> rs = new ArrayList<>();
185   - Class clazz = ScheduleRealInfo.class;
186   - //按 线路_路牌_驾驶员_车辆分组数据
187   - Field xl_f = clazz.getDeclaredField("xlBm"),
188   - lp_f = clazz.getDeclaredField("lpName"),
189   - jsy_f = clazz.getDeclaredField("jGh"),
190   - cl_f = clazz.getDeclaredField("clZbh");
191   -
192   - ArrayListMultimap<String, ScheduleRealInfo> multimap = new ConvertUtil<ScheduleRealInfo>()
193   - .groupMultiList(list, "_", xl_f, lp_f, jsy_f, cl_f);
194   -
195   - //合计工时
196   - Date d = new Date();
197   - Set<String> ks = multimap.keySet();
198   - WorkingHours_jsy wh;
199   - for (String k : ks) {
200   - wh = sum(multimap.get(k), isJh);
201   - wh.setCreateDate(d);
202   - rs.add(wh);
203   - }
204   -
205   - return rs;
206   - }
207   -
208   - private void save(final List<WorkingHours_jsy> list) {
209   - String sql = "insert into z_calc_hoursjsy(company_id, sub_company_id, line_code, line_name, jsy, jsy_name, nbbm, lp_name, rq, hours_jh, hours_sj, source, remarks, create_date) " +
210   - " VALUES(?, ?, ?, ?, ?,?, ?, ?,?,?,?,?,?,?)";
211   -
212   - //编程式事务
213   - DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource());
214   - DefaultTransactionDefinition def = new DefaultTransactionDefinition();
215   - def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
216   - TransactionStatus status = tran.getTransaction(def);
217   -
218   - try {
219   - jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
220   - @Override
221   - public void setValues(PreparedStatement ps, int i) throws SQLException {
222   - WorkingHours_jsy wh = list.get(i);
223   - ps.setString(1, wh.getCompanyId());
224   - ps.setString(2, wh.getSubCompanyId());
225   - ps.setString(3, wh.getLineCode());
226   - ps.setString(4, wh.getLineName());
227   - ps.setString(5, wh.getJsy());
228   - ps.setString(6, wh.getJsyName());
229   - ps.setString(7, wh.getNbbm());
230   - ps.setString(8, wh.getLpName());
231   - ps.setString(9, wh.getRq());
232   - ps.setDouble(10, wh.getHoursJh());
233   - ps.setDouble(11, wh.getHoursSj());
234   - ps.setInt(12, wh.getSource());
235   - ps.setString(13, wh.getRemarks());
236   - ps.setDate(14, new java.sql.Date(wh.getCreateDate().getTime()));
237   - }
238   -
239   - @Override
240   - public int getBatchSize() {
241   - return list.size();
242   - }
243   - });
244   -
245   - tran.commit(status);
246   - } catch (Exception e) {
247   - tran.rollback(status);
248   - logger.error("", e);
249   - }
250   - }
251   -
252   -
253   - /**
254   - * 合计工时
255   - *
256   - * @param list
257   - * @return
258   - */
259   - private WorkingHours_jsy sum(List<ScheduleRealInfo> list, boolean jh) {
260   - ScheduleRealInfo sch = list.get(0);
261   - WorkingHours_jsy wh = new WorkingHours_jsy();
262   -
263   - wh.setCompanyId(sch.getGsBm());
264   - wh.setSubCompanyId(sch.getFgsBm());
265   - wh.setLineCode(sch.getXlBm());
266   - wh.setLpName(sch.getLpName());
267   - wh.setJsy(sch.getjGh());
268   - wh.setJsyName(sch.getjName());
269   - wh.setNbbm(sch.getClZbh());
270   - wh.setLineName(sch.getXlName());
271   - wh.setRq(sch.getScheduleDateStr());
272   - //wh.set
273   - Integer sum = 0;
274   -
275   - for (ScheduleRealInfo s : list) {
276   - sum += s.getHours();
277   - }
278   -
279   - if (jh)
280   - wh.setHoursJh(sum);
281   - else
282   - wh.setHoursSj(sum);
283   - return wh;
284   - }
285   -
286   - /**
287   - * 计算每个班次的工时(包括停站时间)
288   - *
289   - * @param list
290   - */
291   - private void calcOne(List<ScheduleRealInfo> list) {
292   - if (list.size() <= 1)
293   - return;
294   -
295   -
296   - Collections.sort(list, new Comparator<ScheduleRealInfo>() {
297   - @Override
298   - public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
299   - return (int) (s1.getDfsjT() - s2.getDfsjT());
300   - }
301   - });
302   -
303   - int len = list.size() - 1;
304   - for (int i = 0; i < len; i++) {
305   - calcToNextHours(list.get(i), list.get(i + 1));
306   - }
307   -
308   - }
309   -
310   - /**
311   - * 当前班次 和 下一个班次计算工时
312   - *
313   - * @param sch
314   - * @param next
315   - */
316   - private void calcToNextHours(ScheduleRealInfo sch, ScheduleRealInfo next) {
317   - /*if(sch.getjGh().equals("008435") && sch.getClZbh().equals("W0F-017"))
318   - System.out.println("aaa");*/
319   - //分班班次
320   - /*if (isIn(sch) && isOut(next) )
321   - return;*/
322   -
323   - //分班间隔
324   - if (next.getFcsjT() - sch.getFcsjT() >= FB_THRESHOLD_TIME){
325   - if(sch.getStatus()==-1)
326   - sch.setHours(0);
327   - return;
328   - }
329   -
330   - //把停站时间算进去
331   - //sch.setHours((int) ((next.getFcsjT() - sch.getFcsjT()) / 1000 / 60));
332   - sch.setHours((int) ((next.getFcsjActualTime() - sch.getFcsjActualTime()) / 1000 / 60));
333   - }
334   -
335   - private boolean isIn(ScheduleRealInfo sch) {
336   - return sch.getBcType().equals("in");
337   - }
338   -
339   - private boolean isOut(ScheduleRealInfo sch) {
340   - return sch.getBcType().equals("out");
341   - }
342   -}
  1 +package com.bsth.handler;
  2 +
  3 +import com.bsth.entity.LineConfig;
  4 +import com.bsth.entity.ScheduleRealInfo;
  5 +import com.bsth.entity.result.WorkingHours_jsy;
  6 +import com.bsth.service.LineConfigService;
  7 +import com.bsth.service.ScheduleRealInfoService;
  8 +import com.bsth.util.ConvertUtil;
  9 +import com.google.common.collect.ArrayListMultimap;
  10 +import com.mysql.fabric.xmlrpc.base.Data;
  11 +
  12 +import org.joda.time.DateTime;
  13 +import org.slf4j.Logger;
  14 +import org.slf4j.LoggerFactory;
  15 +import org.springframework.beans.factory.annotation.Autowired;
  16 +import org.springframework.jdbc.core.BatchPreparedStatementSetter;
  17 +import org.springframework.jdbc.core.JdbcTemplate;
  18 +import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  19 +import org.springframework.stereotype.Component;
  20 +import org.springframework.transaction.TransactionDefinition;
  21 +import org.springframework.transaction.TransactionStatus;
  22 +import org.springframework.transaction.support.DefaultTransactionDefinition;
  23 +
  24 +import java.lang.reflect.Field;
  25 +import java.sql.PreparedStatement;
  26 +import java.sql.SQLException;
  27 +import java.text.SimpleDateFormat;
  28 +import java.util.*;
  29 +
  30 +/**
  31 + * 人员车辆班次里程处理程序
  32 + */
  33 +@Component
  34 +public class UserCarCountHandler {
  35 +
  36 + /**
  37 + * 结算规则, 周几 ——> 结算前几天 (考虑间隔)
  38 + */
  39 + private static Map<Integer, Integer> runRuleMap;
  40 +
  41 + /**
  42 + * 间隔1天(留一天的时间给各个公司检查路单)
  43 + */
  44 + private final static int DAY_SPACE = 1;
  45 +
  46 + /**
  47 + * 判定分班时间阈值
  48 + */
  49 + private final static long FB_THRESHOLD_TIME = 1000 * 60 * 60 * 2;
  50 +
  51 + @Autowired
  52 + ScheduleRealInfoService scheduleRealInfoService;
  53 + @Autowired
  54 + LineConfigService lineConfigService;
  55 +
  56 + @Autowired
  57 + JdbcTemplate jdbcTemplate;
  58 +
  59 + Logger logger = LoggerFactory.getLogger(this.getClass());
  60 +
  61 + static {
  62 + //0 是周天
  63 + runRuleMap = new HashMap<>();
  64 + runRuleMap.put(1, 0);
  65 + runRuleMap.put(2, 3);
  66 + runRuleMap.put(3, 1);
  67 + runRuleMap.put(4, 1);
  68 + runRuleMap.put(5, 1);
  69 + runRuleMap.put(6, 1);
  70 + runRuleMap.put(0, 0);
  71 + }
  72 +
  73 + /*public void calc() {
  74 + DateTime dt = DateTime.now();
  75 + Calendar calendar = Calendar.getInstance();
  76 + calendar.setTime(dt.toDate());
  77 + //今天要结算多少天的工时
  78 + int count = runRuleMap.get(calendar.get(Calendar.DAY_OF_WEEK) - 1);
  79 +
  80 + dt = dt.minusDays(DAY_SPACE + count);
  81 + String rq;
  82 + for (int i = 0; i < count; i++) {
  83 + rq = dt.toString("yyyy-MM-dd");
  84 + calc(rq);
  85 + dt = dt.plusDays(1);
  86 + }
  87 + }*/
  88 +
  89 + public void calcLast(){
  90 + //计算前一天班次里程
  91 + Date dNow = new Date();
  92 + Calendar calendar = Calendar.getInstance();
  93 + calendar.setTime(dNow);
  94 + calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
  95 + Date dBefore = calendar.getTime(); //得到前一天的时间
  96 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
  97 + SimpleDateFormat sdf2=new SimpleDateFormat(" HH:mm");//得到当前时间
  98 + String lastRq = sdf.format(dBefore); //格式化前一天
  99 + String time=sdf2.format(dNow); //格式化当前时间
  100 + String times[] =time.split(":");
  101 + time=times[0]+times[1];
  102 + int t=Integer.parseInt(times[0])*60+Integer.parseInt(times[1]);
  103 + calc(lastRq,t);
  104 +
  105 + }
  106 +
  107 + private void calc(String rq,int t){
  108 + try {
  109 + List<LineConfig> listLineConfig=lineConfigService.findAllList();
  110 + for (int i = 0; i < listLineConfig.size(); i++) {
  111 + LineConfig lineConfig=listLineConfig.get(i);
  112 + String lineCode=lineConfig.getLineCode();
  113 + String startOpt=lineConfig.getStartOpt();
  114 + String times[] =startOpt.split(":");
  115 + int time=Integer.parseInt(times[0])*60+Integer.parseInt(times[1])-30;
  116 + //线路重新排版前30分钟 统计该线路前一天的 班次 里程
  117 + if(time>t){
  118 + //查询该线路前一天的排班
  119 + }
  120 +
  121 + }
  122 +
  123 + }catch (Exception e) {
  124 + logger.error("", e);
  125 + }
  126 + }
  127 +
  128 + /*private void calc(String rq) {
  129 + try {
  130 + logger.info("开始结算工时: " + rq);
  131 + List<WorkingHours_jsy> list = new ArrayList<>();
  132 + //实际班次,路单数据
  133 + List<ScheduleRealInfo> sjList = scheduleRealInfoService.findAll(rq);
  134 + //计划班次,计调数据
  135 + List<ScheduleRealInfo> jhList = scheduleRealInfoService.findAll_JH(rq);
  136 +
  137 + //附加停站时间
  138 + addStopTime(sjList);
  139 + addStopTime(jhList);
  140 +
  141 + //合计工时
  142 + List<WorkingHours_jsy> jhArray = count(jhList, true);
  143 + List<WorkingHours_jsy> sjArray = count(sjList, false);
  144 +
  145 + //合并计划和实际
  146 + Map<String, WorkingHours_jsy> merges = new HashMap<>();
  147 + for (WorkingHours_jsy jh : jhArray) {
  148 + jh.setHoursSj(0);
  149 + merges.put(jh.keys(), jh);
  150 + }
  151 +
  152 + String key;
  153 + for (WorkingHours_jsy sj : sjArray) {
  154 + key = sj.keys();
  155 + if (merges.containsKey(key)) {
  156 + merges.get(key).setHoursSj(sj.getHoursSj());
  157 + } else {
  158 + sj.setHoursJh(0);
  159 + merges.put(key, sj);
  160 + }
  161 + }
  162 + //入库
  163 + save(new ArrayList(merges.values()));
  164 + logger.info("结算工时成功: " + rq + " -size: " + merges.values().size());
  165 + } catch (Exception e) {
  166 + logger.error("", e);
  167 + }
  168 + }*/
  169 +
  170 + private void addStopTime(List<ScheduleRealInfo> list) throws NoSuchFieldException {
  171 + Class clazz = ScheduleRealInfo.class;
  172 + //按驾驶员分组班次
  173 + ArrayListMultimap<String, ScheduleRealInfo> multimap = new ConvertUtil<ScheduleRealInfo>()
  174 + .groupMultiList(list, "", clazz.getDeclaredField("jGh"));
  175 +
  176 + //为班次附上停站时间
  177 + Set<String> ks = multimap.keySet();
  178 + for (String k : ks) {
  179 + calcOne(multimap.get(k));
  180 + }
  181 + }
  182 +
  183 + private List<WorkingHours_jsy> count(List<ScheduleRealInfo> list, boolean isJh) throws NoSuchFieldException {
  184 + List<WorkingHours_jsy> rs = new ArrayList<>();
  185 + Class clazz = ScheduleRealInfo.class;
  186 + //按 线路_路牌_驾驶员_车辆分组数据
  187 + Field xl_f = clazz.getDeclaredField("xlBm"),
  188 + lp_f = clazz.getDeclaredField("lpName"),
  189 + jsy_f = clazz.getDeclaredField("jGh"),
  190 + cl_f = clazz.getDeclaredField("clZbh");
  191 +
  192 + ArrayListMultimap<String, ScheduleRealInfo> multimap = new ConvertUtil<ScheduleRealInfo>()
  193 + .groupMultiList(list, "_", xl_f, lp_f, jsy_f, cl_f);
  194 +
  195 + //合计工时
  196 + Date d = new Date();
  197 + Set<String> ks = multimap.keySet();
  198 + WorkingHours_jsy wh;
  199 + for (String k : ks) {
  200 + wh = sum(multimap.get(k), isJh);
  201 + wh.setCreateDate(d);
  202 + rs.add(wh);
  203 + }
  204 +
  205 + return rs;
  206 + }
  207 +
  208 + private void save(final List<WorkingHours_jsy> list) {
  209 + String sql = "insert into z_calc_hoursjsy(company_id, sub_company_id, line_code, line_name, jsy, jsy_name, nbbm, lp_name, rq, hours_jh, hours_sj, source, remarks, create_date) " +
  210 + " VALUES(?, ?, ?, ?, ?,?, ?, ?,?,?,?,?,?,?)";
  211 +
  212 + //编程式事务
  213 + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource());
  214 + DefaultTransactionDefinition def = new DefaultTransactionDefinition();
  215 + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
  216 + TransactionStatus status = tran.getTransaction(def);
  217 +
  218 + try {
  219 + jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
  220 + @Override
  221 + public void setValues(PreparedStatement ps, int i) throws SQLException {
  222 + WorkingHours_jsy wh = list.get(i);
  223 + ps.setString(1, wh.getCompanyId());
  224 + ps.setString(2, wh.getSubCompanyId());
  225 + ps.setString(3, wh.getLineCode());
  226 + ps.setString(4, wh.getLineName());
  227 + ps.setString(5, wh.getJsy());
  228 + ps.setString(6, wh.getJsyName());
  229 + ps.setString(7, wh.getNbbm());
  230 + ps.setString(8, wh.getLpName());
  231 + ps.setString(9, wh.getRq());
  232 + ps.setDouble(10, wh.getHoursJh());
  233 + ps.setDouble(11, wh.getHoursSj());
  234 + ps.setInt(12, wh.getSource());
  235 + ps.setString(13, wh.getRemarks());
  236 + ps.setDate(14, new java.sql.Date(wh.getCreateDate().getTime()));
  237 + }
  238 +
  239 + @Override
  240 + public int getBatchSize() {
  241 + return list.size();
  242 + }
  243 + });
  244 +
  245 + tran.commit(status);
  246 + } catch (Exception e) {
  247 + tran.rollback(status);
  248 + logger.error("", e);
  249 + }
  250 + }
  251 +
  252 +
  253 + /**
  254 + * 合计工时
  255 + *
  256 + * @param list
  257 + * @return
  258 + */
  259 + private WorkingHours_jsy sum(List<ScheduleRealInfo> list, boolean jh) {
  260 + ScheduleRealInfo sch = list.get(0);
  261 + WorkingHours_jsy wh = new WorkingHours_jsy();
  262 +
  263 + wh.setCompanyId(sch.getGsBm());
  264 + wh.setSubCompanyId(sch.getFgsBm());
  265 + wh.setLineCode(sch.getXlBm());
  266 + wh.setLpName(sch.getLpName());
  267 + wh.setJsy(sch.getjGh());
  268 + wh.setJsyName(sch.getjName());
  269 + wh.setNbbm(sch.getClZbh());
  270 + wh.setLineName(sch.getXlName());
  271 + wh.setRq(sch.getScheduleDateStr());
  272 + //wh.set
  273 + Integer sum = 0;
  274 +
  275 + for (ScheduleRealInfo s : list) {
  276 +// sum += s.getHours();
  277 + }
  278 +
  279 + if (jh)
  280 + wh.setHoursJh(sum);
  281 + else
  282 + wh.setHoursSj(sum);
  283 + return wh;
  284 + }
  285 +
  286 + /**
  287 + * 计算每个班次的工时(包括停站时间)
  288 + *
  289 + * @param list
  290 + */
  291 + private void calcOne(List<ScheduleRealInfo> list) {
  292 + if (list.size() <= 1)
  293 + return;
  294 +
  295 +
  296 + Collections.sort(list, new Comparator<ScheduleRealInfo>() {
  297 + @Override
  298 + public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) {
  299 + return (int) (s1.getDfsjT() - s2.getDfsjT());
  300 + }
  301 + });
  302 +
  303 + int len = list.size() - 1;
  304 + for (int i = 0; i < len; i++) {
  305 + calcToNextHours(list.get(i), list.get(i + 1));
  306 + }
  307 +
  308 + }
  309 +
  310 + /**
  311 + * 当前班次 和 下一个班次计算工时
  312 + *
  313 + * @param sch
  314 + * @param next
  315 + */
  316 + private void calcToNextHours(ScheduleRealInfo sch, ScheduleRealInfo next) {
  317 + /*if(sch.getjGh().equals("008435") && sch.getClZbh().equals("W0F-017"))
  318 + System.out.println("aaa");*/
  319 + //分班班次
  320 + /*if (isIn(sch) && isOut(next) )
  321 + return;*/
  322 +
  323 + //分班间隔
  324 + if (next.getFcsjT() - sch.getFcsjT() >= FB_THRESHOLD_TIME){
  325 + if(sch.getStatus()==-1)
  326 +// sch.setHours(0);
  327 + return;
  328 + }
  329 +
  330 + //把停站时间算进去
  331 + //sch.setHours((int) ((next.getFcsjT() - sch.getFcsjT()) / 1000 / 60));
  332 +// sch.setHours((int) ((next.getFcsjActualTime() - sch.getFcsjActualTime()) / 1000 / 60));
  333 + }
  334 +
  335 + private boolean isIn(ScheduleRealInfo sch) {
  336 + return sch.getBcType().equals("in");
  337 + }
  338 +
  339 + private boolean isOut(ScheduleRealInfo sch) {
  340 + return sch.getBcType().equals("out");
  341 + }
  342 +}
... ...
src/main/java/com/bsth/service/CulateMileageService.java 0 → 100644
  1 +package com.bsth.service;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +import com.bsth.entity.ScheduleRealInfo;
  7 +
  8 +
  9 +public interface CulateMileageService {
  10 +
  11 + int culateJhyybc(List<ScheduleRealInfo> lists,String item);//计划营运班次
  12 + double culateJhyylc(List<ScheduleRealInfo> lists);//计划营运里程
  13 + int culateJhfyybc(List<ScheduleRealInfo> lists);//计划非营运班次
  14 + double culateJhfyylc(List<ScheduleRealInfo> lists);//计划非营运里程
  15 + int culateSjyybc(List<ScheduleRealInfo> lists,String item);//实际班次
  16 + double culateSjyylc(List<ScheduleRealInfo> lists);//实际营运里程(驾售)
  17 + double culateSjyylc_j(List<ScheduleRealInfo> lists);//实际营运里程(驾)
  18 + double culateSjfyylc(List<ScheduleRealInfo> lists);//实际非营运里程(驾售)
  19 + double culateSjfyylc_j(List<ScheduleRealInfo> lists);//实际非营运里程(驾售)
  20 + int culateLjbc(List<ScheduleRealInfo> lists,String item);//临加营运班次
  21 + double culateLjyylc(List<ScheduleRealInfo> lists);//临加营运里程(驾售)
  22 + double culateLjyylc_j(List<ScheduleRealInfo> lists);//临加营运里程(驾)
  23 + double culateLjfyylc(List<ScheduleRealInfo> lists);//临加非营运里程(驾售)
  24 + double culateLjfyylc_j(List<ScheduleRealInfo> lists);//临加非营运里程(驾)
  25 + int culateLbbc(List<ScheduleRealInfo> lists);//烂班班次
  26 + double culateLbgl(List<ScheduleRealInfo> lists);//烂班公里
  27 + double culateCJLC(List<ScheduleRealInfo> lists,String item);//烂班公里详细
  28 + int culateDtfzbc(List<ScheduleRealInfo> lists,String type,String item);//掉头放站班次
  29 +
  30 +}
  31 +
... ...
src/main/java/com/bsth/service/impl/CulateMileageServiceImpl.java 0 → 100644
  1 +package com.bsth.service.impl;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.HashMap;
  5 +import java.util.Iterator;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +import java.util.Set;
  9 +
  10 +import org.apache.commons.lang.StringUtils;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.jdbc.core.JdbcTemplate;
  13 +import org.springframework.stereotype.Service;
  14 +
  15 +import com.bsth.entity.ChildTaskPlan;
  16 +import com.bsth.entity.ScheduleRealInfo;
  17 +import com.bsth.service.CulateMileageService;
  18 +import com.bsth.util.Arith;
  19 +
  20 +@Service
  21 +public class CulateMileageServiceImpl implements CulateMileageService{
  22 + @Autowired
  23 + JdbcTemplate jdbcTemplate;
  24 + private static long zgf1 = 6 * 60 + 31,
  25 + zgf2 = 8 * 60 + 30,
  26 + wgf1 = 16 * 60 + 1,
  27 + wgf2 = 18 * 60;
  28 + public static boolean isInOut(ScheduleRealInfo s){
  29 + boolean fage=false;
  30 + if(s.getBcType().equals("in")){
  31 + fage=true;
  32 + }
  33 + if(s.getBcType().equals("out")){
  34 + fage=true;
  35 + }
  36 + if(s.getBcType().equals("ldks")){
  37 + fage=true;
  38 + }
  39 +
  40 + return fage;
  41 + }
  42 +
  43 + @Override
  44 + public int culateJhyybc(List<ScheduleRealInfo> lists,String item) {
  45 + //计划班次
  46 + int jhbc=0;
  47 + for (int i = 0; i < lists.size(); i++) {
  48 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  49 + if (!isInOut(scheduleRealInfo)) {
  50 + if(!scheduleRealInfo.isSflj()){
  51 + String[] fcsjStr = scheduleRealInfo.getFcsj().split(":");
  52 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  53 + if(item.equals("zgf")){
  54 + if(fcsj>=zgf1 && fcsj<=zgf2)
  55 + jhbc++;
  56 + }else if(item.equals("wgf")){
  57 + if(fcsj>=wgf1 && fcsj<=wgf2)
  58 + jhbc++;
  59 + }else{
  60 + jhbc++;
  61 + }
  62 +
  63 + }
  64 + }
  65 + }
  66 + return jhbc;
  67 + }
  68 +
  69 + @Override
  70 + public double culateJhyylc(List<ScheduleRealInfo> lists) {
  71 + //计划营运里程
  72 + double jhgl=0;
  73 + for (int i = 0; i < lists.size(); i++) {
  74 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  75 + if (!isInOut(scheduleRealInfo)) {
  76 + if(!scheduleRealInfo.isSflj()){
  77 + jhgl=Arith.add(jhgl,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  78 + }
  79 + }
  80 + }
  81 + return jhgl;
  82 + }
  83 +
  84 + @Override
  85 + public int culateJhfyybc(List<ScheduleRealInfo> lists) {
  86 + // 计划非营运里程
  87 + int fyybc =0;
  88 + for (int i = 0; i < lists.size(); i++) {
  89 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  90 + if(!scheduleRealInfo.isSflj()){
  91 + if (scheduleRealInfo.getBcType().equals("in")
  92 + || scheduleRealInfo.getBcType().equals("out")|| scheduleRealInfo.getBcType().equals("ldks")) {
  93 + if(!scheduleRealInfo.isSflj()){
  94 + fyybc++;
  95 + }
  96 + }
  97 + }
  98 + }
  99 + return fyybc;
  100 + }
  101 + @Override
  102 + public double culateJhfyylc(List<ScheduleRealInfo> lists) {
  103 + // 计划非营运里程
  104 + double fyylc =0;
  105 + for (int i = 0; i < lists.size(); i++) {
  106 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  107 + if(!scheduleRealInfo.isSflj()){
  108 + if (scheduleRealInfo.getBcType().equals("in")
  109 + || scheduleRealInfo.getBcType().equals("out")|| scheduleRealInfo.getBcType().equals("ldks")) {
  110 + if(!scheduleRealInfo.isSflj()){
  111 + fyylc =Arith.add(fyylc, scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  112 + }
  113 + }
  114 + }
  115 + }
  116 + return fyylc;
  117 + }
  118 +
  119 + @Override
  120 + public int culateSjyybc(List<ScheduleRealInfo> lists,String item) {
  121 + // 实际班次
  122 + int sjbc=0;
  123 + for (int i = 0; i < lists.size(); i++) {
  124 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  125 + if (!isInOut(scheduleRealInfo)) {
  126 + if(!scheduleRealInfo.isSflj()){
  127 + String time="";
  128 + if(item.equals("zgf") || item.equals("wgf")){
  129 + if(scheduleRealInfo.getFcsjActual()!=null){
  130 + time=scheduleRealInfo.getFcsjActual();
  131 + }
  132 + if(time.equals("")){
  133 + if(scheduleRealInfo.getDfsj()!=null){
  134 + time=scheduleRealInfo.getDfsj();
  135 + }
  136 + }
  137 + }else{
  138 + time=scheduleRealInfo.getFcsj();
  139 + }
  140 + if(!time.equals("")){
  141 + String[] fcsjStr = time.split(":");
  142 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  143 + if(scheduleRealInfo.getStatus()!=-1){
  144 + if(item.equals("zgf")){
  145 + if(fcsj>=zgf1 && fcsj<=zgf2){
  146 + sjbc++;
  147 + }
  148 + }else if(item.equals("wgf")){
  149 + if(fcsj>=wgf1 && fcsj<=wgf2){
  150 + sjbc++;
  151 + }
  152 + }else{
  153 + sjbc++;
  154 + }
  155 +
  156 + }
  157 + }
  158 + }
  159 + }
  160 + }
  161 + return sjbc;
  162 + }
  163 +
  164 + @Override
  165 + public double culateSjyylc(List<ScheduleRealInfo> lists) {
  166 + // 实际营运里程
  167 + double sjgl =0;
  168 + for (int i = 0; i < lists.size(); i++) {
  169 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  170 + if (!isInOut(scheduleRealInfo)) {
  171 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  172 + if(!scheduleRealInfo.isSflj()){
  173 + if(childTaskPlans.isEmpty()){
  174 + if(!scheduleRealInfo.isDestroy()){
  175 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  176 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  177 + if(jhlc-jhlcOrig>0){
  178 + sjgl=Arith.add(sjgl,jhlcOrig);
  179 + }else{
  180 + sjgl=Arith.add(sjgl,jhlc);
  181 + }
  182 + }
  183 + }else{
  184 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  185 + while (it.hasNext()) {
  186 + ChildTaskPlan childTaskPlan = it.next();
  187 + if(childTaskPlan.getMileageType().equals("service")&&"正常".equals(childTaskPlan.getType1())
  188 + && (!childTaskPlan.isNoClerk())){
  189 + if (!childTaskPlan.isDestroy()) {
  190 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  191 + sjgl=Arith.add(sjgl,jhgl);
  192 + }
  193 + }
  194 + }
  195 + }
  196 + }
  197 + }
  198 + }
  199 + return sjgl;
  200 + }
  201 +
  202 + @Override
  203 + public double culateSjyylc_j(List<ScheduleRealInfo> lists) {
  204 + // 实际营运里程
  205 + double sjgl =0;
  206 + for (int i = 0; i < lists.size(); i++) {
  207 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  208 + if (!isInOut(scheduleRealInfo)) {
  209 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  210 + if(!scheduleRealInfo.isSflj()){
  211 + if(!childTaskPlans.isEmpty()){
  212 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  213 + while (it.hasNext()) {
  214 + ChildTaskPlan childTaskPlan = it.next();
  215 + if(childTaskPlan.getMileageType().equals("service")&&"正常".equals(childTaskPlan.getType1())
  216 + && childTaskPlan.isNoClerk()){
  217 + if (!childTaskPlan.isDestroy()) {
  218 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  219 + sjgl=Arith.add(sjgl,jhgl);
  220 + }
  221 + }
  222 + }
  223 + }
  224 + }
  225 + }
  226 + }
  227 + return sjgl;
  228 + }
  229 +
  230 + @Override
  231 + public double culateSjfyylc(List<ScheduleRealInfo> lists) {
  232 + // 实际非营运里程(驾售)
  233 + double sjgl =0;
  234 + for (int i = 0; i < lists.size(); i++) {
  235 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  236 + if(!scheduleRealInfo.isSflj()){
  237 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  238 + if(childTaskPlans.isEmpty()){
  239 + if (!isInOut(scheduleRealInfo)) {
  240 + if(!scheduleRealInfo.isDestroy()){
  241 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  242 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  243 + if(jhlc-jhlcOrig>0){
  244 + sjgl=Arith.add(sjgl,jhlcOrig);
  245 + }else{
  246 + sjgl=Arith.add(sjgl,jhlc);
  247 + }
  248 + }
  249 + }
  250 + }else{
  251 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  252 + while (it.hasNext()) {
  253 + ChildTaskPlan childTaskPlan = it.next();
  254 + if(childTaskPlan.getMileageType().equals("empty")&&"正常".equals(childTaskPlan.getType1())
  255 + && (!childTaskPlan.isNoClerk())){
  256 + if (!childTaskPlan.isDestroy()) {
  257 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  258 + sjgl=Arith.add(sjgl,jhgl);
  259 + }
  260 + }
  261 + }
  262 + }
  263 + }
  264 + }
  265 + return sjgl;
  266 + }
  267 +
  268 + @Override
  269 + public double culateSjfyylc_j(List<ScheduleRealInfo> lists) {
  270 + // 实际非营运里程(驾)
  271 + double sjgl =0;
  272 + for (int i = 0; i < lists.size(); i++) {
  273 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  274 + if(!scheduleRealInfo.isSflj()){
  275 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  276 + if(!childTaskPlans.isEmpty()){
  277 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  278 + while (it.hasNext()) {
  279 + ChildTaskPlan childTaskPlan = it.next();
  280 + if(childTaskPlan.getMileageType().equals("empty")&&"正常".equals(childTaskPlan.getType1())
  281 + && childTaskPlan.isNoClerk()){
  282 + if (!childTaskPlan.isDestroy()) {
  283 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  284 + sjgl=Arith.add(sjgl,jhgl);
  285 + }
  286 + }
  287 + }
  288 + }
  289 + }
  290 + }
  291 + return sjgl;
  292 + }
  293 +
  294 + @Override
  295 + public int culateLjbc(List<ScheduleRealInfo> lists,String item) {
  296 + // 临加班次
  297 + int ljbc=0;
  298 + for (int i = 0; i < lists.size(); i++) {
  299 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  300 + if (!isInOut(scheduleRealInfo)) {
  301 + if(scheduleRealInfo.isSflj()){
  302 + if(item.equals("zgf") || item.equals("wgf")){
  303 + String time="";
  304 + if(scheduleRealInfo.getFcsjActual()!=null)
  305 + time=scheduleRealInfo.getFcsjActual();
  306 + if(time.equals("")){
  307 + if(scheduleRealInfo.getDfsj()!=null)
  308 + time=scheduleRealInfo.getDfsj();
  309 + }
  310 + if(!time.equals("")){
  311 + String[] fcsjStr = time.split(":");
  312 + long fcsj= Long.parseLong(fcsjStr[0])*60+Long.parseLong(fcsjStr[1]);
  313 + if(item.equals("zgf")){
  314 + if(fcsj>=zgf1 && fcsj<=zgf2)
  315 + ljbc++;
  316 + }else if(item.equals("wgf")){
  317 + if(fcsj>=wgf1 && fcsj<=wgf2)
  318 + ljbc++;
  319 + }
  320 + }
  321 + }else{
  322 + ljbc++;
  323 + }
  324 + }
  325 + }
  326 + }
  327 + return ljbc;
  328 + }
  329 +
  330 +
  331 + @Override
  332 + public double culateLjyylc(List<ScheduleRealInfo> lists) {
  333 + // 临加营运里程(驾售)
  334 + double ljgl =0;
  335 + for (int i = 0; i < lists.size(); i++) {
  336 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  337 + if (!isInOut(scheduleRealInfo)) {
  338 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  339 + if(scheduleRealInfo.isSflj()){
  340 + if(childTaskPlans.isEmpty()){
  341 + if(!scheduleRealInfo.isDestroy())
  342 + ljgl=Arith.add(ljgl,scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  343 + }else{
  344 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  345 + while (it.hasNext()) {
  346 + ChildTaskPlan childTaskPlan = it.next();
  347 + if(childTaskPlan.getMileageType().equals("service")
  348 + && (!childTaskPlan.isNoClerk())){
  349 + if (!childTaskPlan.isDestroy()) {
  350 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  351 + ljgl=Arith.add(ljgl,jhgl);
  352 + }
  353 + }
  354 + }
  355 + }
  356 + }else{
  357 + if(childTaskPlans.isEmpty()){
  358 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  359 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  360 + double zjlc=Arith.sub(jhlc, jhlcOrig);
  361 + if(zjlc>0){
  362 + ljgl=Arith.add(zjlc, ljgl);
  363 + }
  364 + }else{
  365 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  366 + while (it.hasNext()) {
  367 + ChildTaskPlan childTaskPlan = it.next();
  368 + if("service".equals(childTaskPlan.getMileageType())
  369 + &&"临加".equals(childTaskPlan.getType1())
  370 + && (!childTaskPlan.isNoClerk())){
  371 + if (!childTaskPlan.isDestroy()) {
  372 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  373 + ljgl=Arith.add(ljgl,jhgl);
  374 + }
  375 + }
  376 + }
  377 + }
  378 + }
  379 + }
  380 + }
  381 + return ljgl;
  382 + }
  383 +
  384 + @Override
  385 + public double culateLjyylc_j(List<ScheduleRealInfo> lists) {
  386 + // 临加营运里程(驾)
  387 + double ljgl =0;
  388 + for (int i = 0; i < lists.size(); i++) {
  389 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  390 + if (!isInOut(scheduleRealInfo)) {
  391 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  392 + if(scheduleRealInfo.isSflj()){
  393 + if(!childTaskPlans.isEmpty()){
  394 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  395 + while (it.hasNext()) {
  396 + ChildTaskPlan childTaskPlan = it.next();
  397 + if(childTaskPlan.getMileageType().equals("service")
  398 + && childTaskPlan.isNoClerk()){
  399 + if (!childTaskPlan.isDestroy()) {
  400 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  401 + ljgl=Arith.add(ljgl,jhgl);
  402 + }
  403 + }
  404 + }
  405 + }
  406 + }else{
  407 + if(childTaskPlans.isEmpty()){
  408 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  409 + while (it.hasNext()) {
  410 + ChildTaskPlan childTaskPlan = it.next();
  411 + if("service".equals(childTaskPlan.getMileageType())
  412 + &&"临加".equals(childTaskPlan.getType1())
  413 + && childTaskPlan.isNoClerk()){
  414 + if (!childTaskPlan.isDestroy()) {
  415 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  416 + ljgl=Arith.add(ljgl,jhgl);
  417 + }
  418 + }
  419 + }
  420 + }
  421 + }
  422 + }
  423 + }
  424 + return ljgl;
  425 + }
  426 +
  427 + @Override
  428 + public double culateLjfyylc(List<ScheduleRealInfo> lists) {
  429 + // 临加非营运里程(驾售)
  430 + double ljgl =0;
  431 + for (int i = 0; i < lists.size(); i++) {
  432 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  433 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  434 + if (isInOut(scheduleRealInfo)) {
  435 + if(scheduleRealInfo.isSflj()){
  436 + if(childTaskPlans.isEmpty()){
  437 + if(!scheduleRealInfo.isDestroy())
  438 + ljgl=Arith.add(ljgl,scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  439 + }else{
  440 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  441 + while (it.hasNext()) {
  442 + ChildTaskPlan childTaskPlan = it.next();
  443 + if(childTaskPlan.getMileageType().equals("empty")
  444 + && (!childTaskPlan.isNoClerk())){
  445 + if (!childTaskPlan.isDestroy()) {
  446 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  447 + ljgl=Arith.add(ljgl,jhgl);
  448 + }
  449 + }
  450 + }
  451 + }
  452 + }else{
  453 + if(childTaskPlans.isEmpty()){
  454 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  455 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  456 + double zjlc=Arith.sub(jhlc, jhlcOrig);
  457 + if(zjlc>0){
  458 + ljgl=Arith.add(zjlc, ljgl);
  459 + }
  460 + }else{
  461 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  462 + while (it.hasNext()) {
  463 + ChildTaskPlan childTaskPlan = it.next();
  464 + if("empty".equals(childTaskPlan.getMileageType())
  465 + &&"临加".equals(childTaskPlan.getType1())
  466 + && (!childTaskPlan.isNoClerk())){
  467 + if (!childTaskPlan.isDestroy()) {
  468 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  469 + ljgl=Arith.add(ljgl,jhgl);
  470 + }
  471 + }
  472 + }
  473 + }
  474 + }
  475 + }else{
  476 + if (!childTaskPlans.isEmpty()) {
  477 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  478 + while (it.hasNext()) {
  479 + ChildTaskPlan childTaskPlan = it.next();
  480 + if ("empty".equals(childTaskPlan.getMileageType()) && "临加".equals(childTaskPlan.getType1())
  481 + && (!childTaskPlan.isNoClerk())) {
  482 + if (!childTaskPlan.isDestroy()) {
  483 + Float jhgl = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  484 + ljgl = Arith.add(ljgl, jhgl);
  485 + }
  486 + }
  487 + }
  488 + }
  489 + }
  490 + }
  491 + return ljgl;
  492 + }
  493 +
  494 + @Override
  495 + public double culateLjfyylc_j(List<ScheduleRealInfo> lists) {
  496 + // 临加非营运里程(驾)
  497 + double ljgl =0;
  498 + for (int i = 0; i < lists.size(); i++) {
  499 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  500 + if (!isInOut(scheduleRealInfo)) {
  501 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  502 + if(scheduleRealInfo.isSflj()){
  503 + if(!childTaskPlans.isEmpty()){
  504 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  505 + while (it.hasNext()) {
  506 + ChildTaskPlan childTaskPlan = it.next();
  507 + if(childTaskPlan.getMileageType().equals("empty")
  508 + && childTaskPlan.isNoClerk()){
  509 + if (!childTaskPlan.isDestroy()) {
  510 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  511 + ljgl=Arith.add(ljgl,jhgl);
  512 + }
  513 + }
  514 + }
  515 + }
  516 + }else{
  517 + if(childTaskPlans.isEmpty()){
  518 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  519 + while (it.hasNext()) {
  520 + ChildTaskPlan childTaskPlan = it.next();
  521 + if("empty".equals(childTaskPlan.getMileageType())
  522 + &&"临加".equals(childTaskPlan.getType1())
  523 + && childTaskPlan.isNoClerk()){
  524 + if (!childTaskPlan.isDestroy()) {
  525 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  526 + ljgl=Arith.add(ljgl,jhgl);
  527 + }
  528 + }
  529 + }
  530 + }
  531 + }
  532 + }
  533 + }
  534 + return ljgl;
  535 + }
  536 +
  537 + @Override
  538 + public int culateLbbc(List<ScheduleRealInfo> lists) {
  539 + // 烂班班次
  540 + int lbbc=0;
  541 + for (int i = 0; i < lists.size(); i++) {
  542 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  543 + if (!isInOut(scheduleRealInfo)) {
  544 + if(scheduleRealInfo.getStatus() == -1){
  545 + lbbc++;
  546 + }
  547 + }
  548 + }
  549 + return lbbc;
  550 + }
  551 +
  552 + @Override
  553 + public double culateLbgl(List<ScheduleRealInfo> lists) {
  554 + // TODO Auto-generated method stub
  555 + double zlblc =0.0;
  556 + for (int i = 0; i < lists.size(); i++) {
  557 + ScheduleRealInfo scheduleRealInfo=lists.get(i);
  558 + if (!isInOut(scheduleRealInfo)) {
  559 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  560 + if(childTaskPlans.isEmpty()){
  561 + if(scheduleRealInfo.isDestroy()){
  562 + zlblc=Arith.add(zlblc,scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig());
  563 + }else{
  564 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  565 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  566 + double cjlc=Arith.sub(jhlcOrig,jhlc);
  567 + if(cjlc>0){
  568 + zlblc=Arith.add(zlblc, cjlc);
  569 + }
  570 + }
  571 + }else{
  572 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  573 + while (it.hasNext()) {
  574 + ChildTaskPlan childTaskPlan = it.next();
  575 + if(childTaskPlan.getMileageType().equals("service")){
  576 + if (childTaskPlan.isDestroy()) {
  577 + zlblc=Arith.add(zlblc,childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage());
  578 + }
  579 + }
  580 + }
  581 + }
  582 + }
  583 + }
  584 + return zlblc;
  585 + }
  586 +
  587 + @Override
  588 + public double culateCJLC(List<ScheduleRealInfo> list, String item) {
  589 + // TODO Auto-generated method stub
  590 + double sum = 0;
  591 + Set<ChildTaskPlan> cts;
  592 + for(ScheduleRealInfo sch : list){
  593 + if (sch.isSflj())
  594 + continue;
  595 + cts = sch.getcTasks();
  596 + //有子任务
  597 + if (cts != null && cts.size() > 0) {
  598 + for(ChildTaskPlan c : cts){
  599 + if(item.equals("其他")){
  600 + if(c.isDestroy() &&
  601 + ((c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item)||
  602 + (c.getDestroyReason()==null?"": c.getDestroyReason()).equals("")))
  603 + sum = Arith.add(sum, c.getMileage());
  604 + }else{
  605 + if(c.isDestroy() && (c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item))
  606 + sum = Arith.add(sum, c.getMileage());
  607 + }
  608 +
  609 + }
  610 + }
  611 + else if(isInOut(sch))
  612 + continue;
  613 + //主任务烂班
  614 + else if(sch.getStatus() == -1){
  615 + if(sch.getAdjustExps().equals(item) ||
  616 + (StringUtils.isEmpty(sch.getAdjustExps()) && item.equals("其他"))){
  617 + sum = Arith.add(sum, sch.getJhlcOrig());
  618 + }
  619 + }
  620 + else if(item.equals("其他")){
  621 + double diff = Arith.sub(sch.getJhlcOrig(), sch.getJhlc());
  622 + if(diff > 0){
  623 + sum = Arith.add(sum, diff);
  624 + }
  625 + }
  626 + }
  627 + return sum;
  628 + }
  629 +
  630 + @Override
  631 + public int culateDtfzbc(List<ScheduleRealInfo> lists,String type,String item){
  632 + int bc=0;
  633 + for (int i = 0; i < lists.size(); i++) {
  634 + ScheduleRealInfo s=lists.get(i);
  635 + if (s.getBcType().equals(type)) {
  636 + if (s.getFcsjActual() != null) {
  637 + if (!s.isDestroy()) {
  638 + String fcsjs = s.getFcsjActual();
  639 + String[] fcsjStr = fcsjs.split(":");
  640 + long fcsj = Long.parseLong(fcsjStr[0]) * 60 + Long.parseLong(fcsjStr[1]);
  641 + if (item.equals("zgf")) {
  642 + if (fcsj > zgf1 && fcsj < zgf2)
  643 + bc++;
  644 + } else if (item.equals("wgf")) {
  645 + if (fcsj > wgf1 && fcsj < wgf2)
  646 + bc++;
  647 + } else {
  648 + bc++;
  649 + }
  650 + }
  651 + }
  652 + }
  653 + }
  654 + return bc;
  655 + }
  656 +}
... ...
src/main/java/com/bsth/service/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -4,6 +4,7 @@ import com.bsth.entity.ScheduleRealInfo;
4 4 import com.bsth.entity.result.CalcWaybill;
5 5 import com.bsth.repository.ScheduleRealInfoRepository;
6 6 import com.bsth.service.*;
  7 +import com.bsth.util.Arith;
7 8  
8 9 import org.joda.time.format.DateTimeFormat;
9 10 import org.joda.time.format.DateTimeFormatter;
... ... @@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
17 18 import java.sql.ResultSet;
18 19 import java.sql.SQLException;
19 20 import java.util.ArrayList;
  21 +import java.util.Date;
20 22 import java.util.HashMap;
21 23 import java.util.List;
22 24 import java.util.Map;
... ... @@ -31,7 +33,8 @@ public class ScheduleRealInfoServiceImpl implements ScheduleRealInfoService {
31 33  
32 34 @Autowired
33 35 ScheduleRealInfoRepository scheduleRealInfoRepository;
34   -
  36 + @Autowired
  37 + CulateMileageService culateMileageService;
35 38 @Autowired
36 39 JdbcTemplate jdbcTemplate;
37 40  
... ... @@ -47,6 +50,7 @@ public class ScheduleRealInfoServiceImpl implements ScheduleRealInfoService {
47 50  
48 51 @Override
49 52 public List<CalcWaybill> findAll(String rq,String lineCode) {
  53 + List<CalcWaybill> listCal=new ArrayList<CalcWaybill>();
50 54 List<ScheduleRealInfo> list = scheduleRealInfoRepository.findAll(rq,lineCode);
51 55 String sql ="select r.j_gh ,r.s_gh,r.cl_zbh,r.xl_bm, r.lp_name FROM"
52 56 + " bsth_c_s_sp_info_real r where "
... ... @@ -98,9 +102,179 @@ public class ScheduleRealInfoServiceImpl implements ScheduleRealInfoService {
98 102 }
99 103 }
100 104  
101   -
  105 + //计算方法
  106 + if(list_.size()>0){
  107 + listCal.addAll(this.cul(list_, lists_));
  108 + }
102 109 }
103   - return null;
  110 + return listCal;
104 111 }
105 112  
  113 + //list_ 全部班次 lists_执行了的班次(实到实发不为空)
  114 + private List<CalcWaybill> cul(List<ScheduleRealInfo> list_,List<ScheduleRealInfo> lists_){
  115 + List<CalcWaybill> list=new ArrayList<CalcWaybill>();
  116 + if(list_.size()>0){
  117 + Date date=list_.get(0).getScheduleDate();
  118 + String dateStr=list_.get(0).getScheduleDateStr();
  119 + String gsdm=list_.get(0).getGsBm();
  120 + String gsname=list_.get(0).getGsName();
  121 + String fgsdm=list_.get(0).getFgsBm();
  122 + String fgsname=list_.get(0).getFgsName();
  123 + String xlbm=list_.get(0).getXlBm();
  124 + String xlname=list_.get(0).getXlName();
  125 + String lp=list_.get(0).getLpName();
  126 + String jgh=list_.get(0).getjGh();
  127 + String jname=list_.get(0).getjName();
  128 + String sgh=list_.get(0).getsGh();
  129 + String sname=list_.get(0).getsName();
  130 + String clzbh=list_.get(0).getClZbh();
  131 + int jhyybc=culateMileageService.culateJhyybc(list_, "");
  132 + int jhyybcZgf=culateMileageService.culateJhyybc(list_, "zgf");
  133 + int jhyybcWgf=culateMileageService.culateJhyybc(list_, "wgf");
  134 + double jhyylc=culateMileageService.culateJhyylc(list_);
  135 + double jhfyylc=culateMileageService.culateJhfyylc(list_);
  136 + int sjyybc=culateMileageService.culateSjyybc(lists_, "");
  137 + int sjyybcZgf=culateMileageService.culateSjyybc(lists_, "zgf");
  138 + int sjyybcWgf=culateMileageService.culateSjyybc(lists_, "wgf");
  139 + double sjyylc=culateMileageService.culateSjyylc(lists_);//驾售共有
  140 + double sjyylc_j=culateMileageService.culateSjyylc_j(lists_);//无售
  141 + double sjfyylc=culateMileageService.culateSjfyylc(lists_);//驾售
  142 + double sjfyylc_j=culateMileageService.culateSjfyylc_j(lists_);//无售
  143 + int ljbc=culateMileageService.culateLjbc(lists_, "");
  144 + int ljbcZgf=culateMileageService.culateLjbc(lists_, "zgf");
  145 + int ljbcWgf=culateMileageService.culateLjbc(lists_, "wgf");
  146 + double ljyylc=culateMileageService.culateLjyylc(lists_);//驾售
  147 + double ljyylc_j=culateMileageService.culateLjyylc(lists_);//无售
  148 + double ljfyylc=culateMileageService.culateLjfyylc(lists_);//驾售
  149 + double ljfyylc_j=culateMileageService.culateLjfyylc_j(lists_);//无售
  150 + int lbbc=culateMileageService.culateLbbc(list_);
  151 + double lblc=culateMileageService.culateLbgl(list_);
  152 + double ssgl_lz= culateMileageService.culateCJLC(list_, "路阻");
  153 + double ssgl_dm= culateMileageService.culateCJLC(list_, "吊慢");
  154 + double ssgl_gz= culateMileageService.culateCJLC(list_, "故障");
  155 + double ssgl_jf= culateMileageService.culateCJLC(list_, "纠纷");
  156 + double ssgl_zs= culateMileageService.culateCJLC(list_, "肇事");
  157 + double ssgl_qr= culateMileageService.culateCJLC(list_, "缺人");
  158 + double ssgl_qc= culateMileageService.culateCJLC(list_, "缺车");
  159 + double ssgl_kx= culateMileageService.culateCJLC(list_, "客稀");
  160 + double ssgl_qh= culateMileageService.culateCJLC(list_, "气候");
  161 + double ssgl_yw= culateMileageService.culateCJLC(list_, "援外");
  162 +
  163 + double ssgl_pc=culateMileageService.culateCJLC(list_, "配车");
  164 + double ssgl_by=culateMileageService.culateCJLC(list_, "保养");
  165 + double ssgl_cj=culateMileageService.culateCJLC(list_, "抽减");
  166 + double ssgl_qt=culateMileageService.culateCJLC(list_, "其他");
  167 + double ssgl_qtz=Arith.add(Arith.add(ssgl_pc, ssgl_by), Arith.add(ssgl_cj,ssgl_qt));
  168 + int fzbc=culateMileageService.culateDtfzbc(lists_, "major", "");//放站
  169 + int fzbcZgf=culateMileageService.culateDtfzbc(lists_, "major", "zgf");
  170 + int fzbcWgf=culateMileageService.culateDtfzbc(lists_, "major", "wgf");
  171 + int zfbc=culateMileageService.culateDtfzbc(lists_, "venting", "");//直放
  172 + int zfbcZgf=culateMileageService.culateDtfzbc(lists_, "venting", "zgf");
  173 + int zfbcWgf=culateMileageService.culateDtfzbc(lists_, "venting", "wgf");
  174 + CalcWaybill t=new CalcWaybill();
  175 + t.setRq(date);
  176 + t.setRqStr(dateStr);
  177 + t.setGsdm(gsdm);
  178 + t.setGsname(gsname);
  179 + t.setFgsdm(fgsdm);
  180 + t.setFgsname(fgsname);
  181 + t.setXl(xlbm);
  182 + t.setXlName(xlname);
  183 + t.setLp(lp);
  184 + t.setCl(clzbh);
  185 + t.setjGh(jgh);
  186 + t.setjName(jname);
  187 + t.setsGh(sgh);
  188 + t.setsName(sname);
  189 + t.setJhyybc(jhyybc);
  190 + t.setJhyybczgf(jhyybcZgf);
  191 + t.setJhyybcwgf(jhyybcWgf);
  192 + t.setJhyylc(jhyylc);
  193 + t.setJhfyylc(jhfyylc);
  194 + t.setSjyybc(sjyybc);
  195 + t.setSjyybczgf(sjyybcZgf);
  196 + t.setSjyybcwgf(sjyybcWgf);
  197 + t.setSjyylc(sjyylc);
  198 + t.setSjfyylc(sjfyylc);
  199 + t.setLjbc(ljbc);
  200 + t.setLjbczgf(ljbcZgf);
  201 + t.setLjbcwgf(ljbcWgf);
  202 + t.setLjyylc(ljyylc);
  203 + t.setLjfyylc(ljfyylc);
  204 + t.setLbbc(lbbc);
  205 + t.setLblc(lblc);
  206 + t.setLblcLz(ssgl_lz);
  207 + t.setLblcDm(ssgl_dm);
  208 + t.setLblcGz(ssgl_gz);
  209 + t.setLblcJf(ssgl_jf);
  210 + t.setLblcZs(ssgl_zs);
  211 + t.setLblcQr(ssgl_qr);
  212 + t.setLblcQc(ssgl_qc);
  213 + t.setLblcKx(ssgl_kx);
  214 + t.setLblcQh(ssgl_qh);
  215 + t.setLblcYw(ssgl_yw);
  216 + t.setLblcQt(ssgl_qtz);
  217 + t.setFzbc(fzbc+zfbc);
  218 + t.setFzbczgf(fzbcZgf+zfbcZgf);
  219 + t.setFzbcwgf(fzbcWgf+zfbcWgf);
  220 + t.setDtbc(0);
  221 + t.setDtbczgf(0);
  222 + t.setDtbcwgf(0);
  223 + list.add(t);
  224 + //驾驶员单独行驶里程
  225 + if(sjyylc_j>0||sjfyylc_j>0||ljyylc_j>0||ljfyylc_j>0){
  226 + CalcWaybill t_=new CalcWaybill();
  227 + t_.setRq(date);
  228 + t_.setRqStr(dateStr);
  229 + t_.setGsdm(gsdm);
  230 + t_.setGsname(gsname);
  231 + t_.setFgsdm(fgsdm);
  232 + t_.setFgsname(fgsname);
  233 + t_.setXl(xlbm);
  234 + t_.setXlName(xlname);
  235 + t_.setLp(lp);
  236 + t_.setCl(clzbh);
  237 + t_.setjGh(jgh);
  238 + t_.setjName(jname);
  239 + t_.setSjyylc(sjyylc_j);
  240 + t_.setSjfyylc(sjfyylc_j);
  241 + t_.setLjyylc(ljyylc_j);
  242 + t_.setLjfyylc(ljfyylc_j);
  243 + t_.setsGh("");
  244 + t_.setsName("");
  245 + t_.setJhyybc(0);
  246 + t_.setJhyybczgf(0);
  247 + t_.setJhyybcwgf(0);
  248 + t_.setJhyylc(0.0);
  249 + t_.setJhfyylc(0.0);
  250 + t_.setSjyybc(0);
  251 + t_.setSjyybczgf(0);
  252 + t_.setSjyybcwgf(0);
  253 + t_.setLjbc(0);
  254 + t_.setLjbczgf(0);
  255 + t_.setLjbcwgf(0);
  256 + t_.setLbbc(0);
  257 + t_.setLblc(0.0);
  258 + t_.setLblcLz(0.0);
  259 + t_.setLblcDm(0.0);
  260 + t_.setLblcGz(0.0);
  261 + t_.setLblcJf(0.0);
  262 + t_.setLblcZs(0.0);
  263 + t_.setLblcQr(0.0);
  264 + t_.setLblcQc(0.0);
  265 + t_.setLblcKx(0.0);
  266 + t_.setLblcQh(0.0);
  267 + t_.setLblcYw(0.0);
  268 + t_.setLblcQt(0.0);
  269 + t_.setFzbc(0);
  270 + t_.setFzbczgf(0);
  271 + t_.setFzbcwgf(0);
  272 + t_.setDtbc(0);
  273 + t_.setDtbczgf(0);
  274 + t_.setDtbcwgf(0);
  275 + list.add(t_);
  276 + }
  277 + }
  278 + return list;
  279 + }
106 280 }
... ...