Commit 480095aceeedf1735eee2d6644be66fadab0f116

Authored by 潘钊
1 parent 995d98c7

update...

Showing 24 changed files with 1196 additions and 225 deletions
src/main/java/com/bsth/CXFConfig.java
... ... @@ -4,6 +4,7 @@ import com.bsth.server_rs.AuthorizeInterceptor_IN;
4 4 import com.bsth.server_rs.base_info.car.CarRestService;
5 5 import com.bsth.server_rs.base_info.line.LineRestService;
6 6 import com.bsth.server_rs.base_info.person.PersonRestService;
  7 +import com.bsth.server_rs.base_info.station.StationRestService;
7 8 import com.bsth.server_rs.exception.AesExceptionMapper;
8 9 import com.bsth.server_rs.gps.GpsRestService;
9 10 import com.bsth.server_rs.schedule.real.ScheduleRealService;
... ... @@ -73,6 +74,9 @@ public class CXFConfig {
73 74 @Autowired
74 75 ScheduleRealService scheduleRealService;
75 76  
  77 + @Autowired
  78 + StationRestService stationRestService;
  79 +
76 80 @Bean
77 81 public Server rsServer() {
78 82 JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
... ... @@ -83,7 +87,8 @@ public class CXFConfig {
83 87 new CarRestService(),
84 88 new PersonRestService(),
85 89 new GpsRestService(),
86   - scheduleRealService));
  90 + scheduleRealService,
  91 + stationRestService));
87 92 endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(), new AesExceptionMapper()));
88 93 //endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));
89 94 endpoint.getInInterceptors().add(new AuthorizeInterceptor_IN());
... ...
src/main/java/com/bsth/common/BasicData.java
... ... @@ -3,6 +3,7 @@ package com.bsth.common;
3 3 import com.bsth.Application;
4 4 import org.springframework.beans.factory.annotation.Autowired;
5 5 import org.springframework.boot.CommandLineRunner;
  6 +import org.springframework.core.annotation.Order;
6 7 import org.springframework.jdbc.core.JdbcTemplate;
7 8 import org.springframework.stereotype.Component;
8 9  
... ... @@ -16,6 +17,7 @@ import java.util.concurrent.TimeUnit;
16 17 * Created by panzhao on 2017/8/24.
17 18 */
18 19 @Component
  20 +@Order(1)
19 21 public class BasicData implements CommandLineRunner {
20 22  
21 23 /**
... ... @@ -24,12 +26,15 @@ public class BasicData implements CommandLineRunner {
24 26 */
25 27 public static Map<String, String> lineDateMap;
26 28  
  29 + public static Map<String, String> lineStartTimeMap;
  30 +
27 31 @Autowired
28 32 BasicDataLoader basicDataLoader;
29 33  
30 34 @Override
31 35 public void run(String... strings) throws Exception {
32   - Application.mainServices.scheduleWithFixedDelay(basicDataLoader, 10, 60 * 10, TimeUnit.SECONDS);
  36 + basicDataLoader.run();
  37 + Application.mainServices.scheduleWithFixedDelay(basicDataLoader, 60 * 10, 60 * 10, TimeUnit.SECONDS);
33 38 }
34 39  
35 40  
... ... @@ -46,17 +51,24 @@ public class BasicData implements CommandLineRunner {
46 51  
47 52 private void loadLineDateMap(){
48 53 Map<String, String> lineDateMapCopy = new HashMap<>();
  54 + Map<String, String> lineStartTimeMapCopy = new HashMap<>();
  55 +
49 56 String sql = "select START_OPT,t2.LINE_CODE from bsth_c_line_config t1 INNER JOIN bsth_c_line t2 on t1.line=t2.id where t2.line_code is not null";
50 57  
51 58 List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
  59 + String lineCode, startTime;
52 60 for(Map<String, Object> map : list){
53   - lineDateMapCopy.put(map.get("LINE_CODE").toString(), calcScheduleDate(map.get("START_OPT")));
  61 + lineCode = map.get("LINE_CODE").toString();
  62 + startTime = map.get("START_OPT").toString();
  63 + lineDateMapCopy.put(lineCode, calcScheduleDate(startTime));
  64 + lineStartTimeMapCopy.put(lineCode, startTime);
54 65 }
55 66  
56 67 lineDateMap = lineDateMapCopy;
  68 + lineStartTimeMap = lineStartTimeMapCopy;
57 69 }
58 70  
59   - private String calcScheduleDate(Object startDate){
  71 + private String calcScheduleDate(String startDate){
60 72 return "20170828";
61 73 }
62 74 }
... ...
src/main/java/com/bsth/entity/ChildTaskPlan.java
1 1 package com.bsth.entity;
2 2  
  3 +import com.bsth.server_rs.adapter.DateTimeAdapter;
3 4 import com.fasterxml.jackson.annotation.JsonIgnore;
4 5  
5 6 import javax.persistence.*;
  7 +import javax.xml.bind.annotation.XmlRootElement;
  8 +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
6 9 import java.io.Serializable;
7 10 import java.util.Date;
8 11  
... ... @@ -15,6 +18,7 @@ import java.util.Date;
15 18 * @date 2016年6月20日 上午11:22:22
16 19 *
17 20 */
  21 +@XmlRootElement
18 22 @Entity
19 23 @Table(name = "bsth_c_s_child_task")
20 24 @NamedEntityGraphs({
... ... @@ -235,6 +239,7 @@ public class ChildTaskPlan implements Serializable {
235 239 return this.id.equals(((ChildTaskPlan)obj).getId());
236 240 }
237 241  
  242 + @XmlJavaTypeAdapter(DateTimeAdapter.class)
238 243 public Date getCreateDate() {
239 244 return createDate;
240 245 }
... ...
src/main/java/com/bsth/entity/ScheduleRealInfo.java
1 1 package com.bsth.entity;
2 2  
  3 +import org.joda.time.format.DateTimeFormat;
  4 +import org.joda.time.format.DateTimeFormatter;
  5 +
3 6 import javax.persistence.*;
4 7 import java.io.Serializable;
5 8 import java.util.Date;
... ... @@ -128,7 +131,7 @@ public class ScheduleRealInfo implements Serializable{
128 131  
129 132 /** 备注*/
130 133 private String remarks;
131   -
  134 +
132 135 /**待发时间(格式 HH:mm) */
133 136 private String dfsj;
134 137  
... ... @@ -138,7 +141,7 @@ public class ScheduleRealInfo implements Serializable{
138 141  
139 142 /** 指令下发状态 60: 已发送, 100: 设备确认收到, 200:驾驶员确认 0:失败 */
140 143 private Integer directiveState = -1;
141   -
  144 +
142 145 /** 起点站计划到达时间 */
143 146 @Transient
144 147 private String qdzArrDatejh;
... ... @@ -603,4 +606,28 @@ public class ScheduleRealInfo implements Serializable{
603 606 public void setJhlcOrig(Double jhlcOrig) {
604 607 this.jhlcOrig = jhlcOrig;
605 608 }
  609 +
  610 + @Transient
  611 + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm");
  612 + /**
  613 + *
  614 + * @Title: setFcsjActualAll
  615 + * @Description: TODO(设置实际发车时间 时间戳)
  616 + * @throws
  617 + */
  618 + public void setFcsjActualAll(Long t){
  619 + this.fcsjActualTime = t;
  620 + this.fcsjActual = fmtHHmm.print(t);
  621 + }
  622 +
  623 + /**
  624 + *
  625 + * @Title: setFcsjActualAll
  626 + * @Description: TODO(设置实际终点时间)
  627 + * @throws
  628 + */
  629 + public void setZdsjActualAll(Long t){
  630 + this.zdsjActualTime = t;
  631 + this.zdsjActual = fmtHHmm.print(t);
  632 + }
606 633 }
... ...
src/main/java/com/bsth/redis/OilRedisService.java
1 1 package com.bsth.redis;
2 2  
3   -import com.bsth.Application;
4 3 import com.bsth.entity.OilInfo;
5 4 import com.bsth.redis.util.RedisUtils;
6 5 import com.bsth.repository.OilInfoRepository;
... ... @@ -19,7 +18,6 @@ import org.springframework.stereotype.Component;
19 18 import org.springframework.stereotype.Service;
20 19  
21 20 import java.util.*;
22   -import java.util.concurrent.TimeUnit;
23 21  
24 22 /**
25 23 * 油量数据Redis缓存
... ... @@ -124,7 +122,7 @@ public class OilRedisService implements CommandLineRunner {
124 122 @Override
125 123 public void run(String... strings) throws Exception {
126 124 //定时刷新油耗信息
127   - Application.mainServices.scheduleWithFixedDelay(oilRefreshThread, 40, 60 * 40, TimeUnit.SECONDS);
  125 + //Application.mainServices.scheduleWithFixedDelay(oilRefreshThread, 40, 60 * 40, TimeUnit.SECONDS);
128 126 }
129 127  
130 128 /**
... ...
src/main/java/com/bsth/redis/PlanScheduleRedisService.java
1 1 package com.bsth.redis;
2 2  
3   -import com.bsth.Application;
4 3 import com.bsth.entity.SchedulePlanInfo;
5   -import com.bsth.redis.util.DateUtils;
6 4 import com.bsth.redis.util.RedisUtils;
7 5 import com.bsth.repository.SchedulePlanInfoRepository;
8 6 import com.bsth.server_rs.base_info.line.Line;
... ... @@ -18,7 +16,6 @@ import org.springframework.boot.CommandLineRunner;
18 16 import org.springframework.core.annotation.Order;
19 17 import org.springframework.data.redis.core.ListOperations;
20 18 import org.springframework.data.redis.core.RedisTemplate;
21   -import org.springframework.data.redis.serializer.StringRedisSerializer;
22 19 import org.springframework.stereotype.Component;
23 20 import org.springframework.stereotype.Service;
24 21  
... ... @@ -26,7 +23,6 @@ import java.util.ArrayList;
26 23 import java.util.Date;
27 24 import java.util.Iterator;
28 25 import java.util.List;
29   -import java.util.concurrent.TimeUnit;
30 26  
31 27 /**
32 28 * 计调的 计划排班redis缓存
... ... @@ -124,7 +120,7 @@ public class PlanScheduleRedisService implements CommandLineRunner {
124 120  
125 121 @Override
126 122 public void run(String... strings) throws Exception {
127   - int cacheDays = Integer.parseInt(ConfigUtil.get("cache.days"));
  123 + /*int cacheDays = Integer.parseInt(ConfigUtil.get("cache.days"));
128 124 //设置key 序列化器
129 125 redisTemplate.setKeySerializer(new StringRedisSerializer());
130 126  
... ... @@ -139,7 +135,7 @@ public class PlanScheduleRedisService implements CommandLineRunner {
139 135 long diff = (DateUtils.getTimestamp() + 1000 * 60 * 5) - System.currentTimeMillis();
140 136 if (diff < 0)
141 137 diff += (1000 * 60 * 60 * 24);
142   - Application.mainServices.scheduleAtFixedRate(planClearThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
  138 + Application.mainServices.scheduleAtFixedRate(planClearThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);*/
143 139 }
144 140  
145 141 public List<SchedulePlanInfo> findByMultiLine(List<String> lineArray, String rq) {
... ...
src/main/java/com/bsth/redis/ScheduleRedisService.java
1 1 package com.bsth.redis;
2 2  
3 3 import com.bsth.Application;
  4 +import com.bsth.common.BasicData;
4 5 import com.bsth.entity.ScheduleRealInfo;
5 6 import com.bsth.redis.util.RedisUtils;
6 7 import com.bsth.repository.ScheduleRealInfoRepository;
... ... @@ -10,7 +11,10 @@ import com.bsth.server_ws.WebServiceProxy;
10 11 import com.bsth.util.ConfigUtil;
11 12 import com.bsth.util.ConvertUtil;
12 13 import com.google.common.collect.ArrayListMultimap;
  14 +import org.apache.commons.lang3.StringUtils;
13 15 import org.joda.time.DateTime;
  16 +import org.joda.time.format.DateTimeFormat;
  17 +import org.joda.time.format.DateTimeFormatter;
14 18 import org.slf4j.Logger;
15 19 import org.slf4j.LoggerFactory;
16 20 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -51,6 +55,8 @@ public class ScheduleRedisService implements CommandLineRunner {
51 55  
52 56 static Logger logger = LoggerFactory.getLogger(ScheduleRedisService.class);
53 57  
  58 + private final static long DAY_TIME = 1000 * 60 * 60 * 24L;
  59 +
54 60 /**
55 61 * 将一批班次写入redis
56 62 *
... ... @@ -218,6 +224,7 @@ public class ScheduleRedisService implements CommandLineRunner {
218 224 DateTime dt = new DateTime();
219 225 dt = dt.minusDays(cacheDays);
220 226 List<ScheduleRealInfo> list = scheduleRealInfoRepository.findByDateLT(dt.toString("yyyy-MM-dd"));
  227 + calcTime(list);
221 228 //写入redis
222 229 wirte(list);
223 230  
... ... @@ -282,4 +289,62 @@ public class ScheduleRedisService implements CommandLineRunner {
282 289 }
283 290 }
284 291 }
  292 +
  293 + /**
  294 + * ############ 时间戳计算 ##########
  295 + */
  296 + private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm"),
  297 + fmtHHmm = DateTimeFormat.forPattern("HH:mm");
  298 +
  299 + private void calcTime(List<ScheduleRealInfo> list){
  300 + if(list.size() == 0)
  301 + return;
  302 +
  303 + //计算真实执行日期 和 时间戳
  304 + for(ScheduleRealInfo sch : list){
  305 + calcRealDate(BasicData.lineStartTimeMap.get(sch.getXlBm()), sch);
  306 + }
  307 + }
  308 +
  309 + /**
  310 + * @Title: calcRealDate
  311 + * @Description: TODO(计算班次的真实执行日期)
  312 + */
  313 + public void calcRealDate(String startTime, ScheduleRealInfo sch) {
  314 + try {
  315 +
  316 + String rq = sch.getScheduleDateStr();
  317 + //计发时间
  318 + sch.setFcsjT(parseTime(rq, sch.getFcsj(), startTime));
  319 + //待发时间
  320 + sch.setDfsjT(parseTime(rq, sch.getDfsj(), startTime));
  321 + //计划终点时间
  322 + if(StringUtils.isEmpty(sch.getZdsj())){
  323 + sch.setZdsjT(sch.getDfsjT() + (sch.getBcsj() * 60 * 1000));
  324 + sch.setZdsj(fmtHHmm.print(sch.getZdsjT()));
  325 + }
  326 + else
  327 + sch.setZdsjT(sch.getDfsjT() + (sch.getBcsj() * 60 * 1000));
  328 + //实发时间
  329 + if(StringUtils.isEmpty(sch.getFcsjActual()))
  330 + sch.setFcsjActualAll(sch.getDfsjT());
  331 + else
  332 + sch.setFcsjActualAll(parseTime(rq, sch.getFcsjActual(), startTime));
  333 + //实达时间
  334 + if(StringUtils.isEmpty(sch.getZdsjActual()))
  335 + sch.setZdsjActualAll(sch.getZdsjT());
  336 + else
  337 + sch.setZdsjActualAll(parseTime(rq, sch.getZdsjActual(), startTime));
  338 + } catch (Exception e) {
  339 + logger.error("", e);
  340 + }
  341 + }
  342 +
  343 + private long parseTime(String rq, String sj, String startTime){
  344 + long t = fmtyyyyMMddHHmm.parseMillis(rq + sj);
  345 + if(sj.compareTo(startTime) < 0){
  346 + t += DAY_TIME;
  347 + }
  348 + return t;
  349 + }
285 350 }
... ...
src/main/java/com/bsth/server_rs/adapter/DateTimeAdapter.java 0 → 100644
  1 +package com.bsth.server_rs.adapter;
  2 +
  3 +import javax.xml.bind.annotation.adapters.XmlAdapter;
  4 +import java.util.Date;
  5 +
  6 +/**
  7 + * 时间格式处理 yyyy-MM-dd
  8 + * Created by panzhao on 2017/3/28.
  9 + */
  10 +public class DateTimeAdapter extends XmlAdapter<Long, Date> {
  11 +
  12 + @Override
  13 + public Date unmarshal(Long v) throws Exception {
  14 + return new Date(v);
  15 + }
  16 +
  17 + @Override
  18 + public Long marshal(Date v) throws Exception {
  19 + return v.getTime();
  20 + }
  21 +}
... ...
src/main/java/com/bsth/server_rs/base_info/line/Line.java
1 1 package com.bsth.server_rs.base_info.line;
2 2  
3   -import com.bsth.server_rs.adapter.DateAdapter_yMdHms;
  3 +import com.bsth.server_rs.adapter.DateTimeAdapter;
4 4  
5 5 import javax.xml.bind.annotation.XmlRootElement;
6 6 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
... ... @@ -18,166 +18,86 @@ import java.util.Date;
18 18 @XmlRootElement
19 19 public class Line implements Serializable {
20 20  
21   - /**
22   - * 线路ID 主键(唯一标识符) int length(11)
23   - */
24   - private Integer id;
25 21  
26   - /**
27   - * 线路名称 varchar length(50) 不能为空
28   - */
  22 + /**线路名称 varchar length(50) 不能为空*/
29 23 private String name;
30 24  
31   - /**
32   - * 线路编码 varchar length(50) 不能为空
33   - */
  25 + /** 线路编码 varchar length(50) 不能为空*/
34 26 private String lineCode;
35 27  
36   - /**
37   - * 英文名 varchar length(50)
38   - */
39   - private String es;
40   -
41   - /**
42   - * 简称 varchar length(50)
43   - */
44   - private String shortName;
45   -
46   - /**
47   - * 起始站名称 varchar length(50) 不能为空
48   - * 该字段值会在规划线路站点操作时会去验证是否有值。如果为空,则用线路规划站点的起点站。默认使用该字段填写值
49   - */
  28 + /** 起始站名称*/
50 29 private String startStationName;
51 30  
52   - /**
53   - * 终点站名称 varchar length(50) 不能为空
54   - * 该字段值会在规划线路站点操作时会去验证是否有值。如果为空,则用线路规划站点的起点站。默认使用该字段填写值
55   - */
  31 + /** 终点站名称*/
56 32 private String endStationName;
57 33  
58   - /**
59   - * 起始站首班车时间 00:00 上海公交APP中某个接口所需要的字段值 varchar length(50) 不能为空
60   - */
  34 + /** 起始站首班车时间 00:00 */
61 35 private String startStationFirstTime;
62 36  
63   - /**
64   - * 起始站末班车时间 00:00 上海公交APP中某个接口所需要的字段值 varchar length(50) 不能为空
65   - */
  37 + /** 起始站末班车时间 00:00 */
66 38 private String startStationEndTime;
67 39  
68   - /**
69   - * 终点站首班时间 00:00 上海公交APP中某个接口所需要的字段值 varchar length(50) 不能为空
70   - */
  40 + /** 终点站首班时间 00:00 */
71 41 private String endStationFirstTime;
72 42  
73   - /**
74   - * 终点站末班时间 00:00 上海公交APP中某个接口所需要的字段值
75   - */
  43 + /** 终点站末班时间 00:00 */
76 44 private String endStationEndTime;
77 45  
78   - /**
79   - * 所属公司 varchar length(50)
80   - */
  46 + /** 所属公司 */
81 47 private String company;
82 48  
83   - /**
84   - * 分公司 varchar length(50)
85   - */
  49 + /** 分公司 */
86 50 private String brancheCompany;
87 51  
88   - /**
89   - * 性质(线路类型) varchar length(50)
90   - */
  52 + /** 性质(线路类型) */
91 53 private String nature;
92 54  
93   - /**
94   - * 线路等级 varchar length(50)
95   - */
  55 + /**线路等级 */
96 56 private String level;
97 57  
98   - /**
99   - * 线路长度
100   - */
101   - private double length;
102   -
103   - /**
104   - * 线路负责人 varchar length(50)
105   - */
106   - private String chargeName;
107   -
108   - /**
109   - * 负责人电话 varchar length(50)
110   - */
111   - private String telephone;
112   -
113   - /**
114   - * 是否撤销 <1:是;0:否> bit length(50)
115   - */
  58 + /**是否撤销 <1:是;0:否> */
116 59 private Integer destroy;
117 60  
118   - /**
119   - * 是否夜宵线 <1:是;0:否> bit length(50)
120   - */
  61 + /** 是否夜宵线 <1:是;0:否> */
121 62 private Integer supperLine;
122 63  
123   - /**
124   - * 起始调度电话 varchar length(50)
125   - */
126   - private String startPhone;
  64 + /** 设备线路编码 */
  65 + private String eqLinecode;
127 66  
128 67 /**
129   - * 终点调度电话 varchar length(50)
  68 + * 创建日期 timestamp
130 69 */
131   - private String endPhone;
  70 + private Date createDate;
132 71  
133   - /**
134   - * 开辟日期 date
135   - */
136   - private Date openDate;
  72 + //-------------- 标准信息 -----------
  73 + /** 标准总里程 */
  74 + private Double totalMileage;
  75 + /** 早高峰大间隔(分钟) */
  76 + private Double earlyIntervalLg;
137 77  
138   - /**
139   - * 线路沿革 varchar length(50)
140   - */
141   - private String history;
  78 + /** 晚高峰大间隔(分钟) */
  79 + private Double lateIntervalLg;
142 80  
143   - /**
144   - * 上海市线路编码 varchar length(50)
145   - */
146   - private String shanghaiLinecode;
  81 + /** 平时大间隔(分钟) */
  82 + private Double intervalLg;
147 83  
148   - /**
149   - * 设备线路编码 varchar length(50)
150   - */
151   - private String eqLinecode;
  84 + /** 限速(平时) */
  85 + private Double speedLimit;
152 86  
153   - /**
154   - * 权证车辆数量 报表需要的字段值
155   - */
156   - private Integer warrantCar;
  87 + /** 滞站 */
  88 + private Integer lagStation;
157 89  
  90 + /** 越站 */
  91 + private Integer skip;
158 92  
159   - /**
160   - * 线路规划类型 <0:双向;1:环线> int length(11) 运管处接口需要的字段 不能为空
161   - */
162   - private Integer linePlayType;
  93 + /** 超速 */
  94 + private Integer speeding;
163 95  
164   - /**
165   - * 描述 varchar length(255)
166   - */
167   - private String descriptions;
  96 + /** 串线 */
  97 + private Integer crossedLine;
168 98  
169   - /**
170   - * 创建日期 timestamp
171   - */
172   - private Date createDate;
173   -
174   - public Integer getId() {
175   - return id;
176   - }
177   -
178   - public void setId(Integer id) {
179   - this.id = id;
180   - }
  99 + /** 越界 */
  100 + private Integer overflights;
181 101  
182 102 public String getName() {
183 103 return name;
... ... @@ -195,22 +115,6 @@ public class Line implements Serializable {
195 115 this.lineCode = lineCode;
196 116 }
197 117  
198   - public String getEs() {
199   - return es;
200   - }
201   -
202   - public void setEs(String es) {
203   - this.es = es;
204   - }
205   -
206   - public String getShortName() {
207   - return shortName;
208   - }
209   -
210   - public void setShortName(String shortName) {
211   - this.shortName = shortName;
212   - }
213   -
214 118 public String getStartStationName() {
215 119 return startStationName;
216 120 }
... ... @@ -291,30 +195,6 @@ public class Line implements Serializable {
291 195 this.level = level;
292 196 }
293 197  
294   - public double getLength() {
295   - return length;
296   - }
297   -
298   - public void setLength(double length) {
299   - this.length = length;
300   - }
301   -
302   - public String getChargeName() {
303   - return chargeName;
304   - }
305   -
306   - public void setChargeName(String chargeName) {
307   - this.chargeName = chargeName;
308   - }
309   -
310   - public String getTelephone() {
311   - return telephone;
312   - }
313   -
314   - public void setTelephone(String telephone) {
315   - this.telephone = telephone;
316   - }
317   -
318 198 public Integer getDestroy() {
319 199 return destroy;
320 200 }
... ... @@ -331,85 +211,100 @@ public class Line implements Serializable {
331 211 this.supperLine = supperLine;
332 212 }
333 213  
334   - public String getStartPhone() {
335   - return startPhone;
  214 + public String getEqLinecode() {
  215 + return eqLinecode;
336 216 }
337 217  
338   - public void setStartPhone(String startPhone) {
339   - this.startPhone = startPhone;
  218 + public void setEqLinecode(String eqLinecode) {
  219 + this.eqLinecode = eqLinecode;
340 220 }
341 221  
342   - public String getEndPhone() {
343   - return endPhone;
  222 + @XmlJavaTypeAdapter(DateTimeAdapter.class)
  223 + public Date getCreateDate() {
  224 + return createDate;
344 225 }
345 226  
346   - public void setEndPhone(String endPhone) {
347   - this.endPhone = endPhone;
  227 + public void setCreateDate(Date createDate) {
  228 + this.createDate = createDate;
348 229 }
349 230  
350   - @XmlJavaTypeAdapter(DateAdapter_yMdHms.class)
351   - public Date getOpenDate() {
352   - return openDate;
  231 + public Double getTotalMileage() {
  232 + return totalMileage;
353 233 }
354 234  
355   - public void setOpenDate(Date openDate) {
356   - this.openDate = openDate;
  235 + public void setTotalMileage(Double totalMileage) {
  236 + this.totalMileage = totalMileage;
357 237 }
358 238  
359   - public String getHistory() {
360   - return history;
  239 + public Double getEarlyIntervalLg() {
  240 + return earlyIntervalLg;
361 241 }
362 242  
363   - public void setHistory(String history) {
364   - this.history = history;
  243 + public void setEarlyIntervalLg(Double earlyIntervalLg) {
  244 + this.earlyIntervalLg = earlyIntervalLg;
365 245 }
366 246  
367   - public String getShanghaiLinecode() {
368   - return shanghaiLinecode;
  247 + public Double getLateIntervalLg() {
  248 + return lateIntervalLg;
369 249 }
370 250  
371   - public void setShanghaiLinecode(String shanghaiLinecode) {
372   - this.shanghaiLinecode = shanghaiLinecode;
  251 + public void setLateIntervalLg(Double lateIntervalLg) {
  252 + this.lateIntervalLg = lateIntervalLg;
373 253 }
374 254  
375   - public String getEqLinecode() {
376   - return eqLinecode;
  255 + public Double getIntervalLg() {
  256 + return intervalLg;
377 257 }
378 258  
379   - public void setEqLinecode(String eqLinecode) {
380   - this.eqLinecode = eqLinecode;
  259 + public void setIntervalLg(Double intervalLg) {
  260 + this.intervalLg = intervalLg;
381 261 }
382 262  
383   - public Integer getWarrantCar() {
384   - return warrantCar;
  263 + public Double getSpeedLimit() {
  264 + return speedLimit;
385 265 }
386 266  
387   - public void setWarrantCar(Integer warrantCar) {
388   - this.warrantCar = warrantCar;
  267 + public void setSpeedLimit(Double speedLimit) {
  268 + this.speedLimit = speedLimit;
389 269 }
390 270  
391   - public Integer getLinePlayType() {
392   - return linePlayType;
  271 + public Integer getLagStation() {
  272 + return lagStation;
393 273 }
394 274  
395   - public void setLinePlayType(Integer linePlayType) {
396   - this.linePlayType = linePlayType;
  275 + public void setLagStation(Integer lagStation) {
  276 + this.lagStation = lagStation;
397 277 }
398 278  
399   - public String getDescriptions() {
400   - return descriptions;
  279 + public Integer getSkip() {
  280 + return skip;
401 281 }
402 282  
403   - public void setDescriptions(String descriptions) {
404   - this.descriptions = descriptions;
  283 + public void setSkip(Integer skip) {
  284 + this.skip = skip;
405 285 }
406 286  
407   - @XmlJavaTypeAdapter(DateAdapter_yMdHms.class)
408   - public Date getCreateDate() {
409   - return createDate;
  287 + public Integer getSpeeding() {
  288 + return speeding;
410 289 }
411 290  
412   - public void setCreateDate(Date createDate) {
413   - this.createDate = createDate;
  291 + public void setSpeeding(Integer speeding) {
  292 + this.speeding = speeding;
  293 + }
  294 +
  295 + public Integer getCrossedLine() {
  296 + return crossedLine;
  297 + }
  298 +
  299 + public void setCrossedLine(Integer crossedLine) {
  300 + this.crossedLine = crossedLine;
  301 + }
  302 +
  303 + public Integer getOverflights() {
  304 + return overflights;
  305 + }
  306 +
  307 + public void setOverflights(Integer overflights) {
  308 + this.overflights = overflights;
414 309 }
415 310 }
... ...
src/main/java/com/bsth/server_rs/base_info/line/buffer/LineRefreshThread.java
... ... @@ -25,7 +25,8 @@ public class LineRefreshThread extends Thread{
25 25 public void run() {
26 26  
27 27 try {
28   - List<Line> list = jdbcTemplate.query("select * from bsth_c_line",BeanPropertyRowMapper.newInstance(Line.class));
  28 + List<Line> list = jdbcTemplate.query("SELECT t1. NAME,t1.line_code,t1.start_station_name,t1.end_station_name,t1.start_station_first_time,t1.start_station_end_time,t1.end_station_first_time,t1.end_station_end_time,t1.company,t1.branche_company,t1.nature,t1.`level`,t1.destroy,t1.supper_line,t1.eq_linecode,t1.create_date,t2.total_mileage,t2.early_interval_lg,t2.late_interval_lg,t2.interval_lg,t2.speed_limit,t2.lag_station,t2.skip,t2.speeding,t2.crossed_line,t2.overflights FROM bsth_c_line t1 LEFT JOIN bsth_c_line_information t2 ON t1.id = t2.line",
  29 + BeanPropertyRowMapper.newInstance(Line.class));
29 30 if(list != null && list.size() > 0)
30 31 LineBufferData.replaceAll(list);
31 32 }catch (Exception e){
... ...
src/main/java/com/bsth/server_rs/base_info/station/StationRestService.java 0 → 100644
  1 +package com.bsth.server_rs.base_info.station;
  2 +
  3 +import com.bsth.server_rs.base_info.station.buffer.StationBufferData;
  4 +import com.bsth.server_rs.base_info.station.entity.StationRotue;
  5 +import org.springframework.stereotype.Component;
  6 +
  7 +import javax.ws.rs.GET;
  8 +import javax.ws.rs.Path;
  9 +import javax.ws.rs.PathParam;
  10 +import javax.ws.rs.Produces;
  11 +import javax.ws.rs.core.MediaType;
  12 +import java.util.Collection;
  13 +import java.util.Map;
  14 +
  15 +/**
  16 + * Created by panzhao on 2017/8/31.
  17 + */
  18 +@Component
  19 +@Path("/station")
  20 +@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
  21 +public class StationRestService {
  22 +
  23 + @GET
  24 + @Path("/{company}")
  25 + public Map<String, Collection<StationRotue>> findByCompany(@PathParam("company") String company){
  26 + return StationBufferData.findRouteByCompany(company);
  27 + }
  28 +}
... ...
src/main/java/com/bsth/server_rs/base_info/station/buffer/StationBufferData.java 0 → 100644
  1 +package com.bsth.server_rs.base_info.station.buffer;
  2 +
  3 +import com.bsth.Application;
  4 +import com.bsth.server_rs.base_info.line.Line;
  5 +import com.bsth.server_rs.base_info.line.buffer.LineBufferData;
  6 +import com.bsth.server_rs.base_info.station.entity.Station;
  7 +import com.bsth.server_rs.base_info.station.entity.StationRotue;
  8 +import com.google.common.collect.ArrayListMultimap;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.boot.CommandLineRunner;
  11 +import org.springframework.core.annotation.Order;
  12 +import org.springframework.stereotype.Component;
  13 +
  14 +import java.util.*;
  15 +import java.util.concurrent.TimeUnit;
  16 +
  17 +/**
  18 + * 站点数据缓存(自更新)
  19 + * Created by panzhao on 2017/3/27.
  20 + */
  21 +@Component
  22 +@Order(6)
  23 +public class StationBufferData implements CommandLineRunner {
  24 +
  25 + @Autowired
  26 + StationRefreshThread stationRefreshThread;
  27 +
  28 + private static List<Station> data;
  29 + private static Map<String, Station> codeMap;
  30 +
  31 + /**
  32 + 路由缓存
  33 + 线路编码_上下行 ——> 路由集合
  34 + */
  35 + private static ArrayListMultimap<String, StationRotue> routeListMap;
  36 +
  37 +
  38 + public static List<Station> findAll(){
  39 + return data;
  40 + }
  41 +
  42 + public static Map<String, Collection<StationRotue>> findAllRoute(){
  43 + return routeListMap.asMap();
  44 + }
  45 +
  46 + public static Station findOne(String code){
  47 + return codeMap.get(code);
  48 + }
  49 +
  50 + public static void replaceAll(List<Station> newData){
  51 + data = newData;
  52 + Map<String, Station> codeMapCopy = new HashMap<>();
  53 + for(Station station : data){
  54 + codeMapCopy.put(station.getStationCode(), station);
  55 + }
  56 +
  57 + codeMap = codeMapCopy;
  58 + }
  59 +
  60 + public static void replaceRoutes(List<StationRotue> list){
  61 + Collections.sort(list, new Comparator<StationRotue>() {
  62 + @Override
  63 + public int compare(StationRotue o1, StationRotue o2) {
  64 + return o1.getStationRouteCode().compareTo(o2.getStationRouteCode());
  65 + }
  66 + });
  67 +
  68 + ArrayListMultimap<String, StationRotue> routeListMapCopy = ArrayListMultimap.create();
  69 + for(StationRotue sr : list){
  70 + routeListMapCopy.put(sr.getLineCode()+"_" + sr.getDirections(), sr);
  71 + }
  72 +
  73 + routeListMap = routeListMapCopy;
  74 + }
  75 +
  76 + @Override
  77 + public void run(String... strings) throws Exception {
  78 + Application.mainServices.scheduleWithFixedDelay(stationRefreshThread, 10, 60 * 60, TimeUnit.SECONDS);
  79 + }
  80 +
  81 + public static Map<String, Collection<StationRotue>> findRouteByCompany(String company) {
  82 + List<Line> lines = LineBufferData.findByCompany(company);
  83 +
  84 + ArrayListMultimap<String, StationRotue> listMap = ArrayListMultimap.create();
  85 +
  86 +
  87 + Set<String> ks = routeListMap.keySet();
  88 +
  89 + for(String k : ks){
  90 + if(include(lines, k)){
  91 + listMap.putAll(k, routeListMap.get(k));
  92 + }
  93 + }
  94 + return listMap.asMap();
  95 + }
  96 +
  97 + private static boolean include(List<Line> lines, String k){
  98 +
  99 + for(Line line : lines){
  100 + if(k.startsWith(line.getLineCode() + "_"))
  101 + return true;
  102 + }
  103 + return false;
  104 + }
  105 +}
... ...
src/main/java/com/bsth/server_rs/base_info/station/buffer/StationRefreshThread.java 0 → 100644
  1 +package com.bsth.server_rs.base_info.station.buffer;
  2 +
  3 +import com.bsth.server_rs.base_info.station.entity.Station;
  4 +import com.bsth.server_rs.base_info.station.entity.StationRotue;
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.jdbc.core.BeanPropertyRowMapper;
  9 +import org.springframework.jdbc.core.JdbcTemplate;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * Created by panzhao on 2017/3/27.
  16 + */
  17 +@Component
  18 +public class StationRefreshThread extends Thread{
  19 +
  20 + @Autowired
  21 + JdbcTemplate jdbcTemplate;
  22 +
  23 + Logger logger = LoggerFactory.getLogger(this.getClass());
  24 +
  25 + @Override
  26 + public void run() {
  27 +
  28 + try {
  29 + //站点信息
  30 + List<Station> stationList = jdbcTemplate.query("SELECT station_cod AS station_code,station_name,g_lonx AS lon,g_laty AS lat,shapes_type,radius,g_polygon_grid AS polygon_grid,versions FROM bsth_c_station where destroy=0 ",
  31 + BeanPropertyRowMapper.newInstance(Station.class));
  32 +
  33 + if(stationList == null || stationList.size() == 0)
  34 + return;
  35 + StationBufferData.replaceAll(stationList);
  36 +
  37 + //站点路由信息
  38 + List<StationRotue> routeList = jdbcTemplate.query("select id, line, station_route_code, line_code,station_code,station_mark,distances, to_time,directions from bsth_c_stationroute",
  39 + BeanPropertyRowMapper.newInstance(StationRotue.class));
  40 +
  41 + for(StationRotue sr : routeList){
  42 + sr.setStation(StationBufferData.findOne(sr.getStationCode()));
  43 + }
  44 + StationBufferData.replaceRoutes(routeList);
  45 + }catch (Exception e){
  46 + logger.error("", e);
  47 + }
  48 + }
  49 +}
... ...
src/main/java/com/bsth/server_rs/base_info/station/entity/Station.java 0 → 100644
  1 +package com.bsth.server_rs.base_info.station.entity;
  2 +
  3 +/**
  4 + * 站点信息
  5 + * Created by panzhao on 2017/8/31.
  6 + */
  7 +public class Station {
  8 +
  9 + /** 站点编码 */
  10 + private String stationCode;
  11 +
  12 + /** 站点名称 */
  13 + private String stationName;
  14 +
  15 + /** WGS 经度 */
  16 + private Float lon;
  17 +
  18 + /** WGS 纬度 */
  19 + private Float lat;
  20 +
  21 + /**
  22 + * 电子围栏类型
  23 + *
  24 + * ------ r:圆形
  25 + *
  26 + * ------ d:多边形
  27 + */
  28 + private String shapesType;
  29 +
  30 + /** 圆形半径 */
  31 + private Integer radius;
  32 +
  33 + /** 多边形 WGS 坐标 */
  34 + private String polygonGrid;
  35 +
  36 + /** 版本号 */
  37 + private Integer versions;
  38 +
  39 +
  40 + public String getStationName() {
  41 + return stationName;
  42 + }
  43 +
  44 + public void setStationName(String stationName) {
  45 + this.stationName = stationName;
  46 + }
  47 +
  48 + public String getShapesType() {
  49 + return shapesType;
  50 + }
  51 +
  52 + public void setShapesType(String shapesType) {
  53 + this.shapesType = shapesType;
  54 + }
  55 +
  56 + public Integer getRadius() {
  57 + return radius;
  58 + }
  59 +
  60 + public void setRadius(Integer radius) {
  61 + this.radius = radius;
  62 + }
  63 +
  64 +
  65 + public Integer getVersions() {
  66 + return versions;
  67 + }
  68 +
  69 + public void setVersions(Integer versions) {
  70 + this.versions = versions;
  71 + }
  72 +
  73 + public String getStationCode() {
  74 + return stationCode;
  75 + }
  76 +
  77 + public void setStationCode(String stationCode) {
  78 + this.stationCode = stationCode;
  79 + }
  80 +
  81 + public Float getLon() {
  82 + return lon;
  83 + }
  84 +
  85 + public void setLon(Float lon) {
  86 + this.lon = lon;
  87 + }
  88 +
  89 + public Float getLat() {
  90 + return lat;
  91 + }
  92 +
  93 + public void setLat(Float lat) {
  94 + this.lat = lat;
  95 + }
  96 +
  97 + public String getPolygonGrid() {
  98 + return polygonGrid;
  99 + }
  100 +
  101 + public void setPolygonGrid(String polygonGrid) {
  102 + this.polygonGrid = polygonGrid;
  103 + }
  104 +}
... ...
src/main/java/com/bsth/server_rs/base_info/station/entity/StationRotue.java 0 → 100644
  1 +package com.bsth.server_rs.base_info.station.entity;
  2 +
  3 +/**
  4 + * Created by panzhao on 2017/8/31.
  5 + */
  6 +public class StationRotue {
  7 +
  8 + /** 线路编码 */
  9 + private String lineCode;
  10 +
  11 + /** 站点路由序号 */
  12 + private Integer stationRouteCode;
  13 +
  14 + private String stationCode;
  15 +
  16 + private Station station;
  17 +
  18 + /**
  19 + * 站点类型
  20 + * ------ B:起点站
  21 + * ------ Z:中途站
  22 + * ------ E:终点站
  23 + * ------ T:停车场
  24 + */
  25 + private String stationMark;
  26 +
  27 + /** 站点路由到站距离 */
  28 + private Double distances;
  29 +
  30 + /** 站点路由到站时间 */
  31 + private Double toTime;
  32 +
  33 + /** 首班时间 */
  34 + private String firstTime;
  35 +
  36 + /** 末班时间 */
  37 + private String endTime;
  38 +
  39 + /** 站点路由方向 */
  40 + private Integer directions;
  41 +
  42 + /** 版本号 */
  43 + private Integer versions;
  44 +
  45 + public String getLineCode() {
  46 + return lineCode;
  47 + }
  48 +
  49 + public void setLineCode(String lineCode) {
  50 + this.lineCode = lineCode;
  51 + }
  52 +
  53 + public Integer getStationRouteCode() {
  54 + return stationRouteCode;
  55 + }
  56 +
  57 + public void setStationRouteCode(Integer stationRouteCode) {
  58 + this.stationRouteCode = stationRouteCode;
  59 + }
  60 +
  61 + public Station getStation() {
  62 + return station;
  63 + }
  64 +
  65 + public void setStation(Station station) {
  66 + this.station = station;
  67 + }
  68 +
  69 + public String getStationMark() {
  70 + return stationMark;
  71 + }
  72 +
  73 + public void setStationMark(String stationMark) {
  74 + this.stationMark = stationMark;
  75 + }
  76 +
  77 + public Double getDistances() {
  78 + return distances;
  79 + }
  80 +
  81 + public void setDistances(Double distances) {
  82 + this.distances = distances;
  83 + }
  84 +
  85 + public Double getToTime() {
  86 + return toTime;
  87 + }
  88 +
  89 + public void setToTime(Double toTime) {
  90 + this.toTime = toTime;
  91 + }
  92 +
  93 + public String getFirstTime() {
  94 + return firstTime;
  95 + }
  96 +
  97 + public void setFirstTime(String firstTime) {
  98 + this.firstTime = firstTime;
  99 + }
  100 +
  101 + public String getEndTime() {
  102 + return endTime;
  103 + }
  104 +
  105 + public void setEndTime(String endTime) {
  106 + this.endTime = endTime;
  107 + }
  108 +
  109 + public Integer getDirections() {
  110 + return directions;
  111 + }
  112 +
  113 + public void setDirections(Integer directions) {
  114 + this.directions = directions;
  115 + }
  116 +
  117 + public Integer getVersions() {
  118 + return versions;
  119 + }
  120 +
  121 + public void setVersions(Integer versions) {
  122 + this.versions = versions;
  123 + }
  124 +
  125 + public String getStationCode() {
  126 + return stationCode;
  127 + }
  128 +
  129 + public void setStationCode(String stationCode) {
  130 + this.stationCode = stationCode;
  131 + }
  132 +}
... ...
src/main/java/com/bsth/server_rs/gps/GpsRestService.java
1 1 package com.bsth.server_rs.gps;
2 2  
3 3 import com.bsth.server_rs.gps.buffer.GpsRealDataBuffer;
  4 +import com.bsth.server_rs.gps.entity.GpsEntity;
4 5  
5 6 import javax.ws.rs.GET;
6 7 import javax.ws.rs.Path;
... ...
src/main/java/com/bsth/server_rs/gps/buffer/GpsRealDataBuffer.java
1 1 package com.bsth.server_rs.gps.buffer;
2 2  
3 3 import com.bsth.Application;
4   -import com.bsth.server_rs.gps.GpsEntity;
  4 +import com.bsth.server_rs.gps.entity.GpsEntity;
5 5 import org.springframework.beans.factory.annotation.Autowired;
6 6 import org.springframework.boot.CommandLineRunner;
7 7 import org.springframework.core.annotation.Order;
... ...
src/main/java/com/bsth/server_rs/gps/buffer/GpsRefreshThread.java
... ... @@ -2,7 +2,7 @@ package com.bsth.server_rs.gps.buffer;
2 2  
3 3 import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.JSONObject;
5   -import com.bsth.server_rs.gps.GpsEntity;
  5 +import com.bsth.server_rs.gps.entity.GpsEntity;
6 6 import com.bsth.util.ConfigUtil;
7 7 import org.apache.http.HttpEntity;
8 8 import org.apache.http.client.config.RequestConfig;
... ...
src/main/java/com/bsth/server_rs/gps/dao/HistoryGpsDao.java 0 → 100644
  1 +package com.bsth.server_rs.gps.dao;
  2 +
  3 +import org.springframework.stereotype.Component;
  4 +
  5 +/**
  6 + * Created by panzhao on 2017/8/31.
  7 + */
  8 +@Component
  9 +public class HistoryGpsDao {
  10 +
  11 +
  12 +}
... ...
src/main/java/com/bsth/server_rs/gps/GpsEntity.java renamed to src/main/java/com/bsth/server_rs/gps/entity/GpsEntity.java
1   -package com.bsth.server_rs.gps;
  1 +package com.bsth.server_rs.gps.entity;
2 2  
3 3 import javax.xml.bind.annotation.XmlRootElement;
4 4 import java.io.Serializable;
... ...
src/main/java/com/bsth/server_rs/gps/entity/HistoryGpsEntity.java 0 → 100644
  1 +package com.bsth.server_rs.gps.entity;
  2 +
  3 +/**
  4 + * 历史GPS
  5 + * Created by panzhao on 2017/8/31.
  6 + */
  7 +public class HistoryGpsEntity {
  8 +
  9 + /** 车辆自编号 */
  10 + private String nbbm;
  11 +
  12 + /** 设备号 */
  13 + private String deviceId;
  14 +
  15 + /** 线路编码 */
  16 + private String lineId;
  17 +
  18 + /** 上下行 */
  19 + private int upDown;
  20 +
  21 + /** 角度 */
  22 + private float direction;
  23 +
  24 + /** 经度 */
  25 + private double lon;
  26 +
  27 + /** 纬度 */
  28 + private double lat;
  29 +
  30 + /** gps 时间戳*/
  31 + private long ts;
  32 +
  33 + /** 站点编码 */
  34 + private String stopNo;
  35 +
  36 + /** 速度 */
  37 + private float speed;
  38 +
  39 + /** 进出站状态 */
  40 + private int inout_stop;
  41 +
  42 + /** 营运状态 */
  43 + private int state;
  44 +
  45 + public String getNbbm() {
  46 + return nbbm;
  47 + }
  48 +
  49 + public void setNbbm(String nbbm) {
  50 + this.nbbm = nbbm;
  51 + }
  52 +
  53 + public String getDeviceId() {
  54 + return deviceId;
  55 + }
  56 +
  57 + public void setDeviceId(String deviceId) {
  58 + this.deviceId = deviceId;
  59 + }
  60 +
  61 + public String getLineId() {
  62 + return lineId;
  63 + }
  64 +
  65 + public void setLineId(String lineId) {
  66 + this.lineId = lineId;
  67 + }
  68 +
  69 + public int getUpDown() {
  70 + return upDown;
  71 + }
  72 +
  73 + public void setUpDown(int upDown) {
  74 + this.upDown = upDown;
  75 + }
  76 +
  77 + public float getDirection() {
  78 + return direction;
  79 + }
  80 +
  81 + public void setDirection(float direction) {
  82 + this.direction = direction;
  83 + }
  84 +
  85 + public double getLon() {
  86 + return lon;
  87 + }
  88 +
  89 + public void setLon(double lon) {
  90 + this.lon = lon;
  91 + }
  92 +
  93 + public double getLat() {
  94 + return lat;
  95 + }
  96 +
  97 + public void setLat(double lat) {
  98 + this.lat = lat;
  99 + }
  100 +
  101 + public long getTs() {
  102 + return ts;
  103 + }
  104 +
  105 + public void setTs(long ts) {
  106 + this.ts = ts;
  107 + }
  108 +
  109 + public String getStopNo() {
  110 + return stopNo;
  111 + }
  112 +
  113 + public void setStopNo(String stopNo) {
  114 + this.stopNo = stopNo;
  115 + }
  116 +
  117 + public float getSpeed() {
  118 + return speed;
  119 + }
  120 +
  121 + public void setSpeed(float speed) {
  122 + this.speed = speed;
  123 + }
  124 +
  125 + public int getInout_stop() {
  126 + return inout_stop;
  127 + }
  128 +
  129 + public void setInout_stop(int inout_stop) {
  130 + this.inout_stop = inout_stop;
  131 + }
  132 +
  133 + public int getState() {
  134 + return state;
  135 + }
  136 +
  137 + public void setState(int state) {
  138 + this.state = state;
  139 + }
  140 +}
... ...
src/main/java/com/bsth/server_rs/schedule/dto/ScheduleInOut.java
... ... @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
4 4 import com.alibaba.fastjson.JSONObject;
5 5 import com.bsth.entity.ScheduleRealInfo;
6 6  
  7 +import javax.xml.bind.annotation.XmlRootElement;
  8 +import java.io.Serializable;
7 9 import java.util.ArrayList;
8 10 import java.util.List;
9 11  
... ... @@ -11,7 +13,8 @@ import java.util.List;
11 13 * 进出场班次数据 ---给停车场用的
12 14 * Created by panzhao on 2017/8/24.
13 15 */
14   -public class ScheduleInOut {
  16 +@XmlRootElement
  17 +public class ScheduleInOut implements Serializable {
15 18  
16 19 public static List<ScheduleInOut> getMultiInstance(List<ScheduleRealInfo> list, String tccCode){
17 20 List<ScheduleInOut> rs = new ArrayList<>();
... ...
src/main/java/com/bsth/server_rs/schedule/dto/ScheduleRealInfoDTO_JK.java 0 → 100644
  1 +package com.bsth.server_rs.schedule.dto;
  2 +
  3 +import com.bsth.entity.ChildTaskPlan;
  4 +import com.bsth.entity.ScheduleRealInfo;
  5 +
  6 +import javax.xml.bind.annotation.XmlRootElement;
  7 +import java.io.Serializable;
  8 +import java.util.*;
  9 +
  10 +/**
  11 + * 输出给监控平台的实际排班
  12 + * Created by panzhao on 2017/8/30.
  13 + */
  14 +@XmlRootElement
  15 +public class ScheduleRealInfoDTO_JK implements Serializable {
  16 +
  17 + public static List<ScheduleRealInfoDTO_JK> getMultiInstance(List<ScheduleRealInfo> list){
  18 + Collections.sort(list, new Comparator<ScheduleRealInfo>() {
  19 + @Override
  20 + public int compare(ScheduleRealInfo o1, ScheduleRealInfo o2) {
  21 + return o1.getFcsj().compareTo(o2.getFcsj());
  22 + }
  23 + });
  24 +
  25 + List<ScheduleRealInfoDTO_JK> rs = new ArrayList<>();
  26 + ScheduleRealInfoDTO_JK s;
  27 + for(ScheduleRealInfo sch : list){
  28 + s = new ScheduleRealInfoDTO_JK(sch);
  29 + if(!s.getId().toString().equals("2740904"))
  30 + continue;
  31 + rs.add(s);
  32 + }
  33 + return rs;
  34 + }
  35 +
  36 + ScheduleRealInfoDTO_JK(){}
  37 +
  38 + ScheduleRealInfoDTO_JK(ScheduleRealInfo sch){
  39 + this.id = sch.getId();
  40 + this.scheduleDate = sch.getScheduleDateStr();
  41 + this.lineName = sch.getXlName();
  42 + this.lineCode = sch.getXlBm();
  43 + this.lpName = sch.getLpName();
  44 + this.nbbm = sch.getClZbh();
  45 + this.jsy = sch.getjGh() + "/" + sch.getjName();
  46 + this.spy = sch.getsGh() + "/" + sch.getsName();
  47 + this.upDown = Integer.parseInt(sch.getXlDir());
  48 + this.qdzCode = sch.getQdzCode();
  49 + this.qdzName = sch.getQdzName();
  50 + this.zdzCode = sch.getZdzCode();
  51 + this.zdzName = sch.getZdzName();
  52 + this.fcsjT = sch.getFcsjT();
  53 + this.dfsjT = sch.getDfsjT();
  54 + this.zdsjT = sch.getZdsjT();
  55 + this.fcsjActualTime = sch.getFcsjActualTime();
  56 + this.zdsjActualTime = sch.getZdsjActualTime();
  57 + this.jhlc = sch.getJhlc();
  58 + this.jhlcOrig = sch.getJhlcOrig();
  59 + this.bcsj = sch.getBcsj();
  60 + this.bcType = sch.getBcType();
  61 + this.status = sch.getStatus();
  62 + this.adjustExps = sch.getAdjustExps();
  63 + this.sflj = sch.isSflj();
  64 + this.remarks = sch.getRemarks();
  65 + this.cTasks = sch.getcTasks();
  66 + }
  67 +
  68 + private Long id;
  69 +
  70 + private String scheduleDate;
  71 +
  72 + /** 线路名称 */
  73 + private String lineName;
  74 + /** 线路编码 */
  75 + private String lineCode;
  76 +
  77 + /** 路牌名称 */
  78 + private String lpName;
  79 +
  80 + /** 车辆自编号 */
  81 + private String nbbm;
  82 +
  83 + /** 驾驶员工号/名称 */
  84 + private String jsy;
  85 + /** 售票员工号/名称 */
  86 + private String spy;
  87 +
  88 + /** 线路方向 */
  89 + private Integer upDown;
  90 + /** 起点站code*/
  91 + private String qdzCode;
  92 + /** 起点站名字 */
  93 + private String qdzName;
  94 +
  95 + /** 终点站code*/
  96 + private String zdzCode;
  97 + /** 终点站名字 */
  98 + private String zdzName;
  99 +
  100 + /** 计划发车时间戳*/
  101 + private Long fcsjT;
  102 + /**待发时间戳 */
  103 + private Long dfsjT;
  104 + /** 计划终点时间戳*/
  105 + private Long zdsjT;
  106 +
  107 + /** 实际发车时间戳*/
  108 + private Long fcsjActualTime;
  109 + /** 实际终点时间戳*/
  110 + private Long zdsjActualTime;
  111 +
  112 + /** 实际计划里程 */
  113 + private Double jhlc;
  114 +
  115 + /** 计划里程 */
  116 + private Double jhlcOrig;
  117 +
  118 + /** 班次历时 */
  119 + private Integer bcsj;
  120 +
  121 + /**
  122 + * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶
  123 + */
  124 + private String bcType;
  125 +
  126 +
  127 + /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */
  128 + private int status;
  129 +
  130 + private String adjustExps;
  131 +
  132 + /** 是否是临加班次 */
  133 + private boolean sflj;
  134 +
  135 + /** 备注*/
  136 + private String remarks;
  137 +
  138 + /** 子任务 */
  139 + private Set<ChildTaskPlan> cTasks;
  140 +
  141 + public Long getId() {
  142 + return id;
  143 + }
  144 +
  145 + public void setId(Long id) {
  146 + this.id = id;
  147 + }
  148 +
  149 + public String getScheduleDate() {
  150 + return scheduleDate;
  151 + }
  152 +
  153 + public void setScheduleDate(String scheduleDate) {
  154 + this.scheduleDate = scheduleDate;
  155 + }
  156 +
  157 + public String getLineName() {
  158 + return lineName;
  159 + }
  160 +
  161 + public void setLineName(String lineName) {
  162 + this.lineName = lineName;
  163 + }
  164 +
  165 + public String getLineCode() {
  166 + return lineCode;
  167 + }
  168 +
  169 + public void setLineCode(String lineCode) {
  170 + this.lineCode = lineCode;
  171 + }
  172 +
  173 + public String getLpName() {
  174 + return lpName;
  175 + }
  176 +
  177 + public void setLpName(String lpName) {
  178 + this.lpName = lpName;
  179 + }
  180 +
  181 + public String getNbbm() {
  182 + return nbbm;
  183 + }
  184 +
  185 + public void setNbbm(String nbbm) {
  186 + this.nbbm = nbbm;
  187 + }
  188 +
  189 + public String getJsy() {
  190 + return jsy;
  191 + }
  192 +
  193 + public void setJsy(String jsy) {
  194 + this.jsy = jsy;
  195 + }
  196 +
  197 + public String getSpy() {
  198 + return spy;
  199 + }
  200 +
  201 + public void setSpy(String spy) {
  202 + this.spy = spy;
  203 + }
  204 +
  205 + public String getQdzCode() {
  206 + return qdzCode;
  207 + }
  208 +
  209 + public void setQdzCode(String qdzCode) {
  210 + this.qdzCode = qdzCode;
  211 + }
  212 +
  213 + public String getQdzName() {
  214 + return qdzName;
  215 + }
  216 +
  217 + public void setQdzName(String qdzName) {
  218 + this.qdzName = qdzName;
  219 + }
  220 +
  221 + public String getZdzCode() {
  222 + return zdzCode;
  223 + }
  224 +
  225 + public void setZdzCode(String zdzCode) {
  226 + this.zdzCode = zdzCode;
  227 + }
  228 +
  229 + public String getZdzName() {
  230 + return zdzName;
  231 + }
  232 +
  233 + public void setZdzName(String zdzName) {
  234 + this.zdzName = zdzName;
  235 + }
  236 +
  237 + public Long getFcsjT() {
  238 + return fcsjT;
  239 + }
  240 +
  241 + public void setFcsjT(Long fcsjT) {
  242 + this.fcsjT = fcsjT;
  243 + }
  244 +
  245 + public Long getDfsjT() {
  246 + return dfsjT;
  247 + }
  248 +
  249 + public void setDfsjT(Long dfsjT) {
  250 + this.dfsjT = dfsjT;
  251 + }
  252 +
  253 + public Long getZdsjT() {
  254 + return zdsjT;
  255 + }
  256 +
  257 + public void setZdsjT(Long zdsjT) {
  258 + this.zdsjT = zdsjT;
  259 + }
  260 +
  261 + public Long getFcsjActualTime() {
  262 + return fcsjActualTime;
  263 + }
  264 +
  265 + public void setFcsjActualTime(Long fcsjActualTime) {
  266 + this.fcsjActualTime = fcsjActualTime;
  267 + }
  268 +
  269 + public Long getZdsjActualTime() {
  270 + return zdsjActualTime;
  271 + }
  272 +
  273 + public void setZdsjActualTime(Long zdsjActualTime) {
  274 + this.zdsjActualTime = zdsjActualTime;
  275 + }
  276 +
  277 + public Double getJhlc() {
  278 + return jhlc;
  279 + }
  280 +
  281 + public void setJhlc(Double jhlc) {
  282 + this.jhlc = jhlc;
  283 + }
  284 +
  285 + public Double getJhlcOrig() {
  286 + return jhlcOrig;
  287 + }
  288 +
  289 + public void setJhlcOrig(Double jhlcOrig) {
  290 + this.jhlcOrig = jhlcOrig;
  291 + }
  292 +
  293 + public Integer getBcsj() {
  294 + return bcsj;
  295 + }
  296 +
  297 + public void setBcsj(Integer bcsj) {
  298 + this.bcsj = bcsj;
  299 + }
  300 +
  301 + public String getBcType() {
  302 + return bcType;
  303 + }
  304 +
  305 + public void setBcType(String bcType) {
  306 + this.bcType = bcType;
  307 + }
  308 +
  309 + public int getStatus() {
  310 + return status;
  311 + }
  312 +
  313 + public void setStatus(int status) {
  314 + this.status = status;
  315 + }
  316 +
  317 + public String getAdjustExps() {
  318 + return adjustExps;
  319 + }
  320 +
  321 + public void setAdjustExps(String adjustExps) {
  322 + this.adjustExps = adjustExps;
  323 + }
  324 +
  325 + public boolean isSflj() {
  326 + return sflj;
  327 + }
  328 +
  329 + public void setSflj(boolean sflj) {
  330 + this.sflj = sflj;
  331 + }
  332 +
  333 + public String getRemarks() {
  334 + return remarks;
  335 + }
  336 +
  337 + public void setRemarks(String remarks) {
  338 + this.remarks = remarks;
  339 + }
  340 +
  341 + public Set<ChildTaskPlan> getcTasks() {
  342 + return cTasks;
  343 + }
  344 +
  345 + public void setcTasks(Set<ChildTaskPlan> cTasks) {
  346 + this.cTasks = cTasks;
  347 + }
  348 +
  349 + public Integer getUpDown() {
  350 + return upDown;
  351 + }
  352 +
  353 + public void setUpDown(Integer upDown) {
  354 + this.upDown = upDown;
  355 + }
  356 +}
... ...
src/main/java/com/bsth/server_rs/schedule/real/ScheduleRealService.java
... ... @@ -2,7 +2,10 @@ package com.bsth.server_rs.schedule.real;
2 2  
3 3 import com.bsth.common.BasicData;
4 4 import com.bsth.redis.ScheduleRedisService;
  5 +import com.bsth.server_rs.base_info.line.Line;
  6 +import com.bsth.server_rs.base_info.line.buffer.LineBufferData;
5 7 import com.bsth.server_rs.schedule.dto.ScheduleInOut;
  8 +import com.bsth.server_rs.schedule.dto.ScheduleRealInfoDTO_JK;
6 9 import org.springframework.beans.factory.annotation.Autowired;
7 10 import org.springframework.stereotype.Component;
8 11  
... ... @@ -20,7 +23,7 @@ import java.util.Set;
20 23 */
21 24 @Component
22 25 @Path("/schedule_real")
23   -@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
  26 +@Produces({MediaType.APPLICATION_JSON})
24 27 public class ScheduleRealService {
25 28  
26 29 @Autowired
... ... @@ -28,17 +31,30 @@ public class ScheduleRealService {
28 31  
29 32 /**
30 33 * 获取当天指定停车场的进出场排班数据
  34 + *
31 35 * @return
32 36 */
33 37 @GET
34 38 @Path("/in_out/{code}")
35   - public List<ScheduleInOut> findInOut(@PathParam("code") String code){
  39 + public List<ScheduleInOut> findInOut(@PathParam("code") String code) {
36 40 Set<String> lineArray = BasicData.lineDateMap.keySet();
37 41  
38 42 List<ScheduleInOut> all = new ArrayList<>();
39   - for(String lineCode : lineArray){
  43 + for (String lineCode : lineArray) {
40 44 all.addAll(ScheduleInOut.getMultiInstance(redisService.read(BasicData.lineDateMap.get(lineCode), lineCode), code));
41 45 }
42 46 return all;
43 47 }
  48 +
  49 + @GET
  50 + @Path("/sch_jk/{company}/{rq}")
  51 + public List<ScheduleRealInfoDTO_JK> find_JK(@PathParam("company") String company, @PathParam("rq") String rq) {
  52 + List<ScheduleRealInfoDTO_JK> all = new ArrayList<>();
  53 +
  54 + List<Line> lines = LineBufferData.findByCompany(company);
  55 + for(Line line : lines){
  56 + all.addAll(ScheduleRealInfoDTO_JK.getMultiInstance(redisService.read(rq, line.getLineCode())));
  57 + }
  58 + return all;
  59 + }
44 60 }
... ...