Commit 10c1aff07aeb6191c0728b44a1369a6da6d99ac0

Authored by 王通
1 parent 686b7f69

1./external相关接口

src/main/java/com/bsth/server_rs/gps/GpsRestService.java
1 -package com.bsth.server_rs.gps;  
2 -  
3 -import java.text.ParseException;  
4 -import java.util.ArrayList;  
5 -import java.util.Collection;  
6 -import java.util.Date;  
7 -import java.util.HashMap;  
8 -import java.util.List;  
9 -import java.util.Map;  
10 -import java.util.Set;  
11 -  
12 -import javax.ws.rs.GET;  
13 -import javax.ws.rs.Path;  
14 -import javax.ws.rs.PathParam;  
15 -import javax.ws.rs.Produces;  
16 -import javax.ws.rs.core.MediaType;  
17 -  
18 -import org.springframework.beans.factory.annotation.Autowired;  
19 -import org.springframework.stereotype.Component;  
20 -  
21 -import com.bsth.server_rs.gps.buffer.BasicDataBuffer;  
22 -import com.bsth.server_rs.gps.buffer.GpsRealDataBuffer;  
23 -import com.bsth.server_rs.gps.dao.HistoryGpsDao;  
24 -import com.bsth.server_rs.gps.entity.GpsEntity;  
25 -import com.bsth.server_rs.gps.entity.LineInfo;  
26 -import com.bsth.server_rs.gps.entity.StopInfo;  
27 -import com.bsth.util.ThreadLocalDateUtil;  
28 -  
29 -/**  
30 - * Created by panzhao on 2017/3/28.  
31 - */  
32 -@Component  
33 -@Path("/gps")  
34 -@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})  
35 -public class GpsRestService {  
36 -  
37 - @Autowired  
38 - HistoryGpsDao historyGpsDao;  
39 -  
40 - @GET  
41 - @Path("/{deviceId}")  
42 - public GpsEntity findOne(@PathParam("deviceId") String deviceId) {  
43 - return GpsRealDataBuffer.get(deviceId);  
44 - }  
45 -  
46 - @GET  
47 - @Path("/all")  
48 - public Collection<GpsEntity> findAll() {  
49 - return GpsRealDataBuffer.all();  
50 - }  
51 -  
52 - @GET  
53 - @Path("/history/{nbbm}/{st}/{et}")  
54 - public Collection<Map<String, Object>> history(@PathParam("nbbm") String nbbm  
55 - , @PathParam("st") String st  
56 - , @PathParam("et") String et) {  
57 - return historyGpsDao.query(nbbm, Long.parseLong(st), Long.parseLong(et));  
58 - }  
59 -  
60 - @GET  
61 - @Path("/gpsReport")  
62 - public List<Map<String, Object>> gpsReport() {  
63 - List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();  
64 - Collection<GpsEntity> gpss = GpsRealDataBuffer.all();  
65 - Set<Integer> lines = BasicDataBuffer.getAllLine();  
66 - for (GpsEntity gps : gpss) {  
67 - String device = gps.getDeviceId();  
68 - if (lines.contains(Integer.parseInt(gps.getLineId()))) {  
69 - Map<String, Object> map = new HashMap<String, Object>();  
70 - map.put("vehicleNumberPlate", BasicDataBuffer.getPlateByDevice(device));  
71 - try {  
72 - map.put("gpsDateTime", ThreadLocalDateUtil.formatDate(new Date(gps.getTimestamp())));  
73 - } catch (ParseException e) {  
74 - // TODO Auto-generated catch block  
75 - e.printStackTrace();  
76 - }  
77 - map.put("gpsLongitude", gps.getLon());  
78 - map.put("gpsLatitude", gps.getLat());  
79 - map.put("gpsDirection", gps.getDirection());  
80 - map.put("gpsSpeed", gps.getSpeed());  
81 - map.put("gpsIsValid", gps.getValid());  
82 - map.put("lineId", gps.getLineId());  
83 - map.put("lineVersion", 0);  
84 - map.put("upDownMark", gps.getUpDown());  
85 - map.put("stationOrder", getCurrStop(gps));  
86 - map.put("inOutStationState", gps.getInOrOutStation());  
87 - map.put("operationalState", gps.getState());  
88 -  
89 - result.add(map);  
90 - }  
91 - }  
92 -  
93 - return result;  
94 - }  
95 -  
96 - private static int getCurrStop(GpsEntity gps) {  
97 - int res = 0;  
98 -  
99 - LineInfo line = BasicDataBuffer.getLineById(Integer.parseInt(gps.getLineId()));  
100 - if (line != null) {  
101 - List<StopInfo> upStops = new ArrayList<>(line.getStopsUp()), downStops = new ArrayList<>(line.getStopsDown());  
102 - int updown = gps.getUpDown();  
103 - // 环线、内外换的线路  
104 - boolean isRing = line.getLinePlayType() == 1;  
105 - if (isRing) {  
106 - updown = 0;  
107 - downStops.clear();  
108 - }  
109 - List<StopInfo> stops = new ArrayList<StopInfo>();  
110 - stops.addAll(upStops);  
111 - stops.addAll(downStops);  
112 -  
113 - int idx = 1;  
114 - if (updown == 0) {  
115 - for (StopInfo stop : upStops) {  
116 - if (gps.getStopNo().trim().equals(stop.getStationCod())) break;  
117 - idx++;  
118 - }  
119 - } else {  
120 - for (StopInfo stop : downStops) {  
121 - if (gps.getStopNo().trim().equals(stop.getStationCod())) break;  
122 - idx++;  
123 - }  
124 - }  
125 - if (idx <= stops.size()) {  
126 - res = idx;  
127 - }  
128 - }  
129 -  
130 - return res;  
131 - }  
132 -} 1 +package com.bsth.server_rs.gps;
  2 +
  3 +import java.text.ParseException;
  4 +import java.util.ArrayList;
  5 +import java.util.Collection;
  6 +import java.util.Date;
  7 +import java.util.HashMap;
  8 +import java.util.List;
  9 +import java.util.Map;
  10 +import java.util.Set;
  11 +
  12 +import javax.ws.rs.GET;
  13 +import javax.ws.rs.Path;
  14 +import javax.ws.rs.PathParam;
  15 +import javax.ws.rs.Produces;
  16 +import javax.ws.rs.core.MediaType;
  17 +
  18 +import com.bsth.server_rs.gps.entity.HistoryArrivalEntity;
  19 +import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.stereotype.Component;
  21 +
  22 +import com.bsth.server_rs.gps.buffer.BasicDataBuffer;
  23 +import com.bsth.server_rs.gps.buffer.GpsRealDataBuffer;
  24 +import com.bsth.server_rs.gps.dao.HistoryGpsDao;
  25 +import com.bsth.server_rs.gps.entity.GpsEntity;
  26 +import com.bsth.server_rs.gps.entity.LineInfo;
  27 +import com.bsth.server_rs.gps.entity.StopInfo;
  28 +import com.bsth.util.ThreadLocalDateUtil;
  29 +
  30 +/**
  31 + * Created by panzhao on 2017/3/28.
  32 + */
  33 +@Component
  34 +@Path("/gps")
  35 +@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
  36 +public class GpsRestService {
  37 +
  38 + @Autowired
  39 + HistoryGpsDao historyGpsDao;
  40 +
  41 + @GET
  42 + @Path("/{deviceId}")
  43 + public GpsEntity findOne(@PathParam("deviceId") String deviceId) {
  44 + return GpsRealDataBuffer.get(deviceId);
  45 + }
  46 +
  47 + @GET
  48 + @Path("/all")
  49 + public Collection<GpsEntity> findAll() {
  50 + return GpsRealDataBuffer.all();
  51 + }
  52 +
  53 + @GET
  54 + @Path("/history/{nbbm}/{st}/{et}")
  55 + public Collection<Map<String, Object>> history(@PathParam("nbbm") String nbbm
  56 + , @PathParam("st") String st
  57 + , @PathParam("et") String et) {
  58 + return historyGpsDao.query(nbbm, Long.parseLong(st), Long.parseLong(et));
  59 + }
  60 +
  61 + @GET
  62 + @Path("/history-arrival/{line}/{st}/{et}")
  63 + public List<HistoryArrivalEntity> historyArrival(@PathParam("line") String line
  64 + , @PathParam("st") String st
  65 + , @PathParam("et") String et) {
  66 + return historyGpsDao.queryArrival(line, Long.parseLong(st), Long.parseLong(et));
  67 + }
  68 +
  69 + @GET
  70 + @Path("/gpsReport")
  71 + public List<Map<String, Object>> gpsReport() {
  72 + List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
  73 + Collection<GpsEntity> gpss = GpsRealDataBuffer.all();
  74 + Set<Integer> lines = BasicDataBuffer.getAllLine();
  75 + for (GpsEntity gps : gpss) {
  76 + String device = gps.getDeviceId();
  77 + if (lines.contains(Integer.parseInt(gps.getLineId()))) {
  78 + Map<String, Object> map = new HashMap<String, Object>();
  79 + map.put("vehicleNumberPlate", BasicDataBuffer.getPlateByDevice(device));
  80 + try {
  81 + map.put("gpsDateTime", ThreadLocalDateUtil.formatDate(new Date(gps.getTimestamp())));
  82 + } catch (ParseException e) {
  83 + // TODO Auto-generated catch block
  84 + e.printStackTrace();
  85 + }
  86 + map.put("gpsLongitude", gps.getLon());
  87 + map.put("gpsLatitude", gps.getLat());
  88 + map.put("gpsDirection", gps.getDirection());
  89 + map.put("gpsSpeed", gps.getSpeed());
  90 + map.put("gpsIsValid", gps.getValid());
  91 + map.put("lineId", gps.getLineId());
  92 + map.put("lineVersion", 0);
  93 + map.put("upDownMark", gps.getUpDown());
  94 + map.put("stationOrder", getCurrStop(gps));
  95 + map.put("inOutStationState", gps.getInOrOutStation());
  96 + map.put("operationalState", gps.getState());
  97 +
  98 + result.add(map);
  99 + }
  100 + }
  101 +
  102 + return result;
  103 + }
  104 +
  105 + private static int getCurrStop(GpsEntity gps) {
  106 + int res = 0;
  107 +
  108 + LineInfo line = BasicDataBuffer.getLineById(Integer.parseInt(gps.getLineId()));
  109 + if (line != null) {
  110 + List<StopInfo> upStops = new ArrayList<>(line.getStopsUp()), downStops = new ArrayList<>(line.getStopsDown());
  111 + int updown = gps.getUpDown();
  112 + // 环线、内外换的线路
  113 + boolean isRing = line.getLinePlayType() == 1;
  114 + if (isRing) {
  115 + updown = 0;
  116 + downStops.clear();
  117 + }
  118 + List<StopInfo> stops = new ArrayList<StopInfo>();
  119 + stops.addAll(upStops);
  120 + stops.addAll(downStops);
  121 +
  122 + int idx = 1;
  123 + if (updown == 0) {
  124 + for (StopInfo stop : upStops) {
  125 + if (gps.getStopNo().trim().equals(stop.getStationCod())) break;
  126 + idx++;
  127 + }
  128 + } else {
  129 + for (StopInfo stop : downStops) {
  130 + if (gps.getStopNo().trim().equals(stop.getStationCod())) break;
  131 + idx++;
  132 + }
  133 + }
  134 + if (idx <= stops.size()) {
  135 + res = idx;
  136 + }
  137 + }
  138 +
  139 + return res;
  140 + }
  141 +}