Commit 2a5a1f8e39adbde2a848040e170dd169acb30112

Authored by 潘钊
1 parent 1ff7296b

注释未完成的模块

src/main/java/com/bsth/data/BasicData.java
1 -package com.bsth.data;  
2 -  
3 -import java.util.HashMap;  
4 -import java.util.Iterator;  
5 -import java.util.Map;  
6 -  
7 -import org.slf4j.Logger;  
8 -import org.slf4j.LoggerFactory;  
9 -import org.springframework.beans.factory.annotation.Autowired;  
10 -import org.springframework.stereotype.Component;  
11 -  
12 -import com.bsth.entity.CarPark;  
13 -import com.bsth.entity.Cars;  
14 -import com.bsth.entity.Line;  
15 -import com.bsth.entity.Station;  
16 -import com.bsth.entity.schedule.CarConfigInfo;  
17 -import com.bsth.repository.CarParkRepository;  
18 -import com.bsth.repository.CarsRepository;  
19 -import com.bsth.repository.LineRepository;  
20 -import com.bsth.repository.StationRepository;  
21 -import com.bsth.repository.schedule.CarConfigInfoRepository;  
22 -import com.google.common.collect.BiMap;  
23 -import com.google.common.collect.HashBiMap;  
24 -import com.google.common.collect.TreeMultimap;  
25 -  
26 -/**  
27 - *  
28 - * @ClassName: BasicData  
29 - * @Description: TODO(基础的映射数据)  
30 - * @author PanZhao  
31 - * @date 2016年8月10日 下午3:27:45  
32 - *  
33 - */  
34 -@Component  
35 -public class BasicData {  
36 -  
37 - //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号)  
38 - public static BiMap<String, String> deviceId2NbbmMap;  
39 -  
40 - //车辆自编号和公司代码对照 (K: 车辆自编号 ,V:公司代码)  
41 - public static Map<String, String> nbbm2CompanyCodeMap;  
42 -  
43 - //站点编码和名称对照,包括停车场 (K: 站点编码 ,V:站点名称)  
44 - public static Map<String, String> stationCode2NameMap;  
45 -  
46 - //车辆和线路对照  
47 - public static Map<String, Line> nbbm2LineMap;  
48 -  
49 - //线路和用户对照 用于webSocket定向推送消息(用户进入线调时写入数据)  
50 - public static TreeMultimap<Integer, String> lineCode2SocketUserMap = TreeMultimap.create();  
51 -  
52 - //线路ID和code 对照  
53 - public static BiMap<Integer, Integer> lineId2CodeMap;  
54 -  
55 - @Autowired  
56 - BasicDataLoader basicDataLoader;  
57 -  
58 - Logger logger = LoggerFactory.getLogger(this.getClass());  
59 -  
60 - /**  
61 - *  
62 - * @Title: loadAllData  
63 - * @Description: TODO(加载所有数据)  
64 - * @throws  
65 - */  
66 - public int loadAllData(){  
67 - try{  
68 - basicDataLoader.loadDeviceInfo();  
69 - basicDataLoader.loadStationInfo();  
70 - basicDataLoader.loadLineInfo();  
71 - basicDataLoader.loadNbbm2LineInfo();  
72 - }catch(Exception e){  
73 - logger.error("加载基础数据时出现异常," , e);  
74 - }  
75 - return 0;  
76 - }  
77 -  
78 - @Component  
79 - public class BasicDataLoader{  
80 -  
81 - @Autowired  
82 - CarsRepository carsRepository;  
83 -  
84 - @Autowired  
85 - StationRepository stationRepository;  
86 -  
87 - @Autowired  
88 - CarParkRepository carParkRepository;  
89 -  
90 - @Autowired  
91 - CarConfigInfoRepository carConfigInfoRepository;  
92 -  
93 - @Autowired  
94 - LineRepository lineRepository;  
95 -  
96 - /**  
97 - *  
98 - * @Title: loadDeviceInfo  
99 - * @Description: TODO(加载设备相关信息)  
100 - * @throws  
101 - */  
102 - public void loadDeviceInfo(){  
103 - BiMap<String, String> deviceId2Nbbm = HashBiMap.create();  
104 - //车辆和公司代码对照  
105 - Map<String, String> nbbm2CompanyCode = new HashMap<>();  
106 - Iterator<Cars> carIterator = carsRepository.findAll().iterator();  
107 - Cars car;  
108 - while(carIterator.hasNext()){  
109 - car = carIterator.next();  
110 - deviceId2Nbbm.put(car.getEquipmentCode(), car.getInsideCode());  
111 - nbbm2CompanyCode.put(car.getInsideCode(), car.getBusinessCode());  
112 - }  
113 -  
114 - deviceId2NbbmMap = deviceId2Nbbm;  
115 - nbbm2CompanyCodeMap = nbbm2CompanyCode;  
116 - }  
117 -  
118 - /**  
119 - *  
120 - * @Title: loadStationInfo  
121 - * @Description: TODO(加载站点信息)  
122 - * @throws  
123 - */  
124 - public void loadStationInfo(){  
125 - Map<String, String> stationCode2Name = new HashMap<>();  
126 - Iterator<Station> iterator = stationRepository.findAll().iterator();  
127 - //站点  
128 - Station station;  
129 - while(iterator.hasNext()){  
130 - station = iterator.next();  
131 - stationCode2Name.put(station.getStationCod(), station.getStationName());  
132 - }  
133 - //停车场  
134 - Iterator<CarPark> iterator2 = carParkRepository.findAll().iterator();  
135 - CarPark carPark;  
136 - while(iterator2.hasNext()){  
137 - carPark = iterator2.next();  
138 - stationCode2Name.put(carPark.getParkCode(), carPark.getParkName());  
139 - }  
140 -  
141 - stationCode2NameMap = stationCode2Name;  
142 - }  
143 -  
144 - /**  
145 - *  
146 - * @Title: loadNbbm2LineInfo  
147 - * @Description: TODO(车辆和线路对照)  
148 - * @throws  
149 - */  
150 - public void loadNbbm2LineInfo(){  
151 - Iterator<CarConfigInfo> allIterator = carConfigInfoRepository.findAll().iterator();  
152 - Map<String, Line> ccMap = new HashMap<>();  
153 -  
154 - CarConfigInfo cci;  
155 - while(allIterator.hasNext()){  
156 - cci = allIterator.next();  
157 - ccMap.put(cci.getCl().getInsideCode(), cci.getXl());  
158 - }  
159 - nbbm2LineMap = ccMap;  
160 - }  
161 -  
162 - /**  
163 - *  
164 - * @Title: loadLineInfo  
165 - * @Description: TODO(加载线路相关信息)  
166 - * @throws  
167 - */  
168 - public void loadLineInfo(){  
169 - Iterator<Line> iterator = lineRepository.findAll().iterator();  
170 -  
171 - Line line;  
172 - BiMap<Integer, Integer> biMap = HashBiMap.create();  
173 - while(iterator.hasNext()){  
174 - line = iterator.next();  
175 - biMap.put(line.getId(), Integer.parseInt(line.getLineCode()));  
176 - }  
177 -  
178 - lineId2CodeMap = biMap;  
179 - }  
180 - }  
181 -} 1 +//package com.bsth.data;
  2 +//
  3 +//import java.util.HashMap;
  4 +//import java.util.Iterator;
  5 +//import java.util.Map;
  6 +//
  7 +//import org.slf4j.Logger;
  8 +//import org.slf4j.LoggerFactory;
  9 +//import org.springframework.beans.factory.annotation.Autowired;
  10 +//import org.springframework.stereotype.Component;
  11 +//
  12 +//import com.bsth.entity.CarPark;
  13 +//import com.bsth.entity.Cars;
  14 +//import com.bsth.entity.Line;
  15 +//import com.bsth.entity.Station;
  16 +//import com.bsth.entity.schedule.CarConfigInfo;
  17 +//import com.bsth.repository.CarParkRepository;
  18 +//import com.bsth.repository.CarsRepository;
  19 +//import com.bsth.repository.LineRepository;
  20 +//import com.bsth.repository.StationRepository;
  21 +//import com.bsth.repository.schedule.CarConfigInfoRepository;
  22 +//import com.google.common.collect.BiMap;
  23 +//import com.google.common.collect.HashBiMap;
  24 +//import com.google.common.collect.TreeMultimap;
  25 +//
  26 +///**
  27 +// *
  28 +// * @ClassName: BasicData
  29 +// * @Description: TODO(基础的映射数据)
  30 +// * @author PanZhao
  31 +// * @date 2016年8月10日 下午3:27:45
  32 +// *
  33 +// */
  34 +//@Component
  35 +//public class BasicData {
  36 +//
  37 +// //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号)
  38 +// public static BiMap<String, String> deviceId2NbbmMap;
  39 +//
  40 +// //车辆自编号和公司代码对照 (K: 车辆自编号 ,V:公司代码)
  41 +// public static Map<String, String> nbbm2CompanyCodeMap;
  42 +//
  43 +// //站点编码和名称对照,包括停车场 (K: 站点编码 ,V:站点名称)
  44 +// public static Map<String, String> stationCode2NameMap;
  45 +//
  46 +// //车辆和线路对照
  47 +// public static Map<String, Line> nbbm2LineMap;
  48 +//
  49 +// //线路和用户对照 用于webSocket定向推送消息(用户进入线调时写入数据)
  50 +// public static TreeMultimap<Integer, String> lineCode2SocketUserMap = TreeMultimap.create();
  51 +//
  52 +// //线路ID和code 对照
  53 +// public static BiMap<Integer, Integer> lineId2CodeMap;
  54 +//
  55 +// @Autowired
  56 +// BasicDataLoader basicDataLoader;
  57 +//
  58 +// Logger logger = LoggerFactory.getLogger(this.getClass());
  59 +//
  60 +// /**
  61 +// *
  62 +// * @Title: loadAllData
  63 +// * @Description: TODO(加载所有数据)
  64 +// * @throws
  65 +// */
  66 +// public int loadAllData(){
  67 +// try{
  68 +// basicDataLoader.loadDeviceInfo();
  69 +// basicDataLoader.loadStationInfo();
  70 +// basicDataLoader.loadLineInfo();
  71 +// basicDataLoader.loadNbbm2LineInfo();
  72 +// }catch(Exception e){
  73 +// logger.error("加载基础数据时出现异常," , e);
  74 +// }
  75 +// return 0;
  76 +// }
  77 +//
  78 +// @Component
  79 +// public class BasicDataLoader{
  80 +//
  81 +// @Autowired
  82 +// CarsRepository carsRepository;
  83 +//
  84 +// @Autowired
  85 +// StationRepository stationRepository;
  86 +//
  87 +// @Autowired
  88 +// CarParkRepository carParkRepository;
  89 +//
  90 +// @Autowired
  91 +// CarConfigInfoRepository carConfigInfoRepository;
  92 +//
  93 +// @Autowired
  94 +// LineRepository lineRepository;
  95 +//
  96 +// /**
  97 +// *
  98 +// * @Title: loadDeviceInfo
  99 +// * @Description: TODO(加载设备相关信息)
  100 +// * @throws
  101 +// */
  102 +// public void loadDeviceInfo(){
  103 +// BiMap<String, String> deviceId2Nbbm = HashBiMap.create();
  104 +// //车辆和公司代码对照
  105 +// Map<String, String> nbbm2CompanyCode = new HashMap<>();
  106 +// Iterator<Cars> carIterator = carsRepository.findAll().iterator();
  107 +// Cars car;
  108 +// while(carIterator.hasNext()){
  109 +// car = carIterator.next();
  110 +// deviceId2Nbbm.put(car.getEquipmentCode(), car.getInsideCode());
  111 +// nbbm2CompanyCode.put(car.getInsideCode(), car.getBusinessCode());
  112 +// }
  113 +//
  114 +// deviceId2NbbmMap = deviceId2Nbbm;
  115 +// nbbm2CompanyCodeMap = nbbm2CompanyCode;
  116 +// }
  117 +//
  118 +// /**
  119 +// *
  120 +// * @Title: loadStationInfo
  121 +// * @Description: TODO(加载站点信息)
  122 +// * @throws
  123 +// */
  124 +// public void loadStationInfo(){
  125 +// Map<String, String> stationCode2Name = new HashMap<>();
  126 +// Iterator<Station> iterator = stationRepository.findAll().iterator();
  127 +// //站点
  128 +// Station station;
  129 +// while(iterator.hasNext()){
  130 +// station = iterator.next();
  131 +// stationCode2Name.put(station.getStationCod(), station.getStationName());
  132 +// }
  133 +// //停车场
  134 +// Iterator<CarPark> iterator2 = carParkRepository.findAll().iterator();
  135 +// CarPark carPark;
  136 +// while(iterator2.hasNext()){
  137 +// carPark = iterator2.next();
  138 +// stationCode2Name.put(carPark.getParkCode(), carPark.getParkName());
  139 +// }
  140 +//
  141 +// stationCode2NameMap = stationCode2Name;
  142 +// }
  143 +//
  144 +// /**
  145 +// *
  146 +// * @Title: loadNbbm2LineInfo
  147 +// * @Description: TODO(车辆和线路对照)
  148 +// * @throws
  149 +// */
  150 +// public void loadNbbm2LineInfo(){
  151 +// Iterator<CarConfigInfo> allIterator = carConfigInfoRepository.findAll().iterator();
  152 +// Map<String, Line> ccMap = new HashMap<>();
  153 +//
  154 +// CarConfigInfo cci;
  155 +// while(allIterator.hasNext()){
  156 +// cci = allIterator.next();
  157 +// ccMap.put(cci.getCl().getInsideCode(), cci.getXl());
  158 +// }
  159 +// nbbm2LineMap = ccMap;
  160 +// }
  161 +//
  162 +// /**
  163 +// *
  164 +// * @Title: loadLineInfo
  165 +// * @Description: TODO(加载线路相关信息)
  166 +// * @throws
  167 +// */
  168 +// public void loadLineInfo(){
  169 +// Iterator<Line> iterator = lineRepository.findAll().iterator();
  170 +//
  171 +// Line line;
  172 +// BiMap<Integer, Integer> biMap = HashBiMap.create();
  173 +// while(iterator.hasNext()){
  174 +// line = iterator.next();
  175 +// biMap.put(line.getId(), Integer.parseInt(line.getLineCode()));
  176 +// }
  177 +//
  178 +// lineId2CodeMap = biMap;
  179 +// }
  180 +// }
  181 +//}
src/main/java/com/bsth/data/gpsdata/GpsRealDataList.java
1 -package com.bsth.data.gpsdata;  
2 -  
3 -import java.io.BufferedReader;  
4 -import java.io.InputStreamReader;  
5 -import java.util.ArrayList;  
6 -import java.util.HashMap;  
7 -import java.util.List;  
8 -import java.util.Map;  
9 -import java.util.NavigableSet;  
10 -  
11 -import org.apache.http.HttpEntity;  
12 -import org.apache.http.client.methods.CloseableHttpResponse;  
13 -import org.apache.http.client.methods.HttpGet;  
14 -import org.apache.http.impl.client.CloseableHttpClient;  
15 -import org.apache.http.impl.client.HttpClients;  
16 -import org.slf4j.Logger;  
17 -import org.slf4j.LoggerFactory;  
18 -  
19 -import com.alibaba.fastjson.JSON;  
20 -import com.alibaba.fastjson.JSONObject;  
21 -import com.bsth.data.BasicData;  
22 -import com.bsth.util.ConfigUtil;  
23 -import com.bsth.vehicle.gpsdata.entity.GpsRealData;  
24 -import com.google.common.collect.TreeMultimap;  
25 -  
26 -/**  
27 - *  
28 - * @ClassName: GpsRealDataBuffer  
29 - * @Description: TODO(实时GPS数据集合)  
30 - * @author PanZhao  
31 - * @date 2016年8月12日 下午2:04:41  
32 - *  
33 - */  
34 -public class GpsRealDataList {  
35 -  
36 - private static Map<String, GpsRealData> gpsMap;  
37 -  
38 - private static TreeMultimap<Integer, String> lineCode2Devices;  
39 -  
40 - // 网关数据接口地址  
41 - private static String url;  
42 -  
43 - static{  
44 - gpsMap = new HashMap<>();  
45 - lineCode2Devices = TreeMultimap.create();  
46 - url = ConfigUtil.get("http.gps.real.url");  
47 - }  
48 -  
49 - static Logger logger = LoggerFactory.getLogger(GpsRealDataList.class);  
50 -  
51 - public static GpsRealData add(GpsRealData gps) {  
52 - String device = gps.getDeviceId();  
53 - gpsMap.put(device, gps);  
54 - lineCode2Devices.put(gps.getLineId(), device);  
55 - return gps;  
56 - }  
57 -  
58 - /**  
59 - *  
60 - * @Title: get @Description: TODO(设备号获取GPS) @param @param deviceId @throws  
61 - */  
62 - public static GpsRealData get(String deviceId) {  
63 - return gpsMap.get(deviceId);  
64 - }  
65 -  
66 - /**  
67 - *  
68 - * @Title: get @Description: TODO(线路编码获取GPS集合) @throws  
69 - */  
70 - public static List<GpsRealData> get(Integer lineCode) {  
71 - NavigableSet<String> set = lineCode2Devices.get(lineCode);  
72 -  
73 - List<GpsRealData> rs = new ArrayList<>();  
74 - for(String device : set){  
75 - rs.add(gpsMap.get(device));  
76 - }  
77 -  
78 - return rs;  
79 - }  
80 -  
81 - public static void LoadGpsRealData() throws Exception {  
82 - List<GpsRealData> list = new ArrayList<>();  
83 - CloseableHttpClient httpClient = null;  
84 -  
85 - try {  
86 - httpClient = HttpClients.createDefault();  
87 - HttpGet get = new HttpGet(url);  
88 -  
89 - CloseableHttpResponse response = httpClient.execute(get);  
90 -  
91 - try {  
92 - HttpEntity entity = response.getEntity();  
93 - if (null != entity) {  
94 - // 返回数据量比较大,建议以流的形式读取  
95 - BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));  
96 - StringBuffer stringBuffer = new StringBuffer();  
97 - String str = "";  
98 - while ((str = br.readLine()) != null)  
99 - stringBuffer.append(str);  
100 -  
101 - JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());  
102 -  
103 - if (jsonObj != null)  
104 - list = JSON.parseArray(jsonObj.getString("data"), GpsRealData.class);  
105 -  
106 - for(GpsRealData gps : list){  
107 - gps.setNbbm(BasicData.deviceId2NbbmMap.get(gps));  
108 - add(gps);  
109 - }  
110 - } else  
111 - logger.error("result is null");  
112 - } finally {  
113 - response.close();  
114 - }  
115 -  
116 - } finally {  
117 - if (null != httpClient)  
118 - httpClient.close();  
119 - }  
120 - }  
121 -} 1 +//package com.bsth.data.gpsdata;
  2 +//
  3 +//import java.io.BufferedReader;
  4 +//import java.io.InputStreamReader;
  5 +//import java.util.ArrayList;
  6 +//import java.util.HashMap;
  7 +//import java.util.List;
  8 +//import java.util.Map;
  9 +//import java.util.NavigableSet;
  10 +//
  11 +//import org.apache.http.HttpEntity;
  12 +//import org.apache.http.client.methods.CloseableHttpResponse;
  13 +//import org.apache.http.client.methods.HttpGet;
  14 +//import org.apache.http.impl.client.CloseableHttpClient;
  15 +//import org.apache.http.impl.client.HttpClients;
  16 +//import org.slf4j.Logger;
  17 +//import org.slf4j.LoggerFactory;
  18 +//
  19 +//import com.alibaba.fastjson.JSON;
  20 +//import com.alibaba.fastjson.JSONObject;
  21 +//import com.bsth.data.BasicData;
  22 +//import com.bsth.util.ConfigUtil;
  23 +//import com.bsth.vehicle.gpsdata.entity.GpsRealData;
  24 +//import com.google.common.collect.TreeMultimap;
  25 +//
  26 +///**
  27 +// *
  28 +// * @ClassName: GpsRealDataBuffer
  29 +// * @Description: TODO(实时GPS数据集合)
  30 +// * @author PanZhao
  31 +// * @date 2016年8月12日 下午2:04:41
  32 +// *
  33 +// */
  34 +//public class GpsRealDataList {
  35 +//
  36 +// private static Map<String, GpsRealData> gpsMap;
  37 +//
  38 +// private static TreeMultimap<Integer, String> lineCode2Devices;
  39 +//
  40 +// // 网关数据接口地址
  41 +// private static String url;
  42 +//
  43 +// static{
  44 +// gpsMap = new HashMap<>();
  45 +// lineCode2Devices = TreeMultimap.create();
  46 +// url = ConfigUtil.get("http.gps.real.url");
  47 +// }
  48 +//
  49 +// static Logger logger = LoggerFactory.getLogger(GpsRealDataList.class);
  50 +//
  51 +// public static GpsRealData add(GpsRealData gps) {
  52 +// String device = gps.getDeviceId();
  53 +// gpsMap.put(device, gps);
  54 +// lineCode2Devices.put(gps.getLineId(), device);
  55 +// return gps;
  56 +// }
  57 +//
  58 +// /**
  59 +// *
  60 +// * @Title: get @Description: TODO(设备号获取GPS) @param @param deviceId @throws
  61 +// */
  62 +// public static GpsRealData get(String deviceId) {
  63 +// return gpsMap.get(deviceId);
  64 +// }
  65 +//
  66 +// /**
  67 +// *
  68 +// * @Title: get @Description: TODO(线路编码获取GPS集合) @throws
  69 +// */
  70 +// public static List<GpsRealData> get(Integer lineCode) {
  71 +// NavigableSet<String> set = lineCode2Devices.get(lineCode);
  72 +//
  73 +// List<GpsRealData> rs = new ArrayList<>();
  74 +// for(String device : set){
  75 +// rs.add(gpsMap.get(device));
  76 +// }
  77 +//
  78 +// return rs;
  79 +// }
  80 +//
  81 +// public static void LoadGpsRealData() throws Exception {
  82 +// List<GpsRealData> list = new ArrayList<>();
  83 +// CloseableHttpClient httpClient = null;
  84 +//
  85 +// try {
  86 +// httpClient = HttpClients.createDefault();
  87 +// HttpGet get = new HttpGet(url);
  88 +//
  89 +// CloseableHttpResponse response = httpClient.execute(get);
  90 +//
  91 +// try {
  92 +// HttpEntity entity = response.getEntity();
  93 +// if (null != entity) {
  94 +// // 返回数据量比较大,建议以流的形式读取
  95 +// BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  96 +// StringBuffer stringBuffer = new StringBuffer();
  97 +// String str = "";
  98 +// while ((str = br.readLine()) != null)
  99 +// stringBuffer.append(str);
  100 +//
  101 +// JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());
  102 +//
  103 +// if (jsonObj != null)
  104 +// list = JSON.parseArray(jsonObj.getString("data"), GpsRealData.class);
  105 +//
  106 +// for(GpsRealData gps : list){
  107 +// gps.setNbbm(BasicData.deviceId2NbbmMap.get(gps));
  108 +// add(gps);
  109 +// }
  110 +// } else
  111 +// logger.error("result is null");
  112 +// } finally {
  113 +// response.close();
  114 +// }
  115 +//
  116 +// } finally {
  117 +// if (null != httpClient)
  118 +// httpClient.close();
  119 +// }
  120 +// }
  121 +//}
src/main/java/com/bsth/entity/directive/D60.java
1 -package com.bsth.entity.directive;  
2 -  
3 -import javax.persistence.Embeddable;  
4 -import javax.persistence.Entity;  
5 -import javax.persistence.FetchType;  
6 -import javax.persistence.GeneratedValue;  
7 -import javax.persistence.Id;  
8 -import javax.persistence.ManyToOne;  
9 -import javax.persistence.NamedAttributeNode;  
10 -import javax.persistence.NamedEntityGraph;  
11 -import javax.persistence.NamedEntityGraphs;  
12 -import javax.persistence.Table;  
13 -import javax.persistence.Transient;  
14 -  
15 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
16 -import com.fasterxml.jackson.annotation.JsonIgnore;  
17 -  
18 -  
19 -/**  
20 - *  
21 - * @ClassName: D60  
22 - * @Description: TODO(调度指令)  
23 - * @author PanZhao  
24 - * @date 2016年6月7日 上午10:21:59  
25 - *  
26 - */  
27 -@Entity  
28 -@Table(name = "bsth_v_directive_60")  
29 -@NamedEntityGraphs({  
30 - @NamedEntityGraph(name = "directive60_sch", attributeNodes = {  
31 - @NamedAttributeNode("sch")  
32 - })  
33 -})  
34 -public class D60 extends Directive{  
35 -  
36 - @Id  
37 - @GeneratedValue  
38 - private Integer id;  
39 -  
40 - /**  
41 - * 数据  
42 - */  
43 - private DirectiveData data;  
44 -  
45 - /**  
46 - * 唯一标识  
47 - */  
48 - @Transient  
49 - private Integer msgId;  
50 -  
51 - /**  
52 - * 46上行  
53 - */  
54 - private Short reply46 = -1;  
55 -  
56 - /**  
57 - * 47上行  
58 - */  
59 - private Short reply47 = -1;  
60 -  
61 - /**  
62 - * 是否是调度指令  
63 - * 目前调度指令和消息短语都是短语下发,所以从协议上无法区分  
64 - */  
65 - private boolean isDispatch;  
66 -  
67 - /**  
68 - * 相关联的班次  
69 - */  
70 - @JsonIgnore  
71 - @ManyToOne(fetch = FetchType.LAZY)  
72 - private ScheduleRealInfo sch;  
73 -  
74 - @Embeddable  
75 - public static class DirectiveData {  
76 - // 公司代码  
77 - private short companyCode;  
78 -  
79 - // 设备号  
80 - @Transient  
81 - private String deviceId;  
82 -  
83 - // 时间戳  
84 - @Transient  
85 - private Long timestamp;  
86 -  
87 - // 保留 默认0  
88 - private short instructType = 0;  
89 -  
90 - /*  
91 - * 调度指令 调度指令。  
92 - * 0X00表示信息短语  
93 - * 0X01表示取消上次指令+调度指令(闹钟有效)  
94 - * 0x02表示为调度指令(闹钟有效)  
95 - * 0x03表示运营状态指令(闹钟无效)  
96 - * 0x04表示其他指令  
97 - */  
98 - private Short dispatchInstruct;  
99 -  
100 - // 唯一标识  
101 - private int msgId;  
102 -  
103 - // 闹钟  
104 - private Long alarmTime;  
105 -  
106 - // 多个运营状态字节  
107 - private Long serviceState;  
108 -  
109 - // 消息文本  
110 - private String txtContent;  
111 -  
112 - public short getCompanyCode() {  
113 - return companyCode;  
114 - }  
115 -  
116 - public void setCompanyCode(short companyCode) {  
117 - this.companyCode = companyCode;  
118 - }  
119 -  
120 - public String getDeviceId() {  
121 - return deviceId;  
122 - }  
123 -  
124 - public void setDeviceId(String deviceId) {  
125 - this.deviceId = deviceId;  
126 - }  
127 -  
128 - public Long getTimestamp() {  
129 - return timestamp;  
130 - }  
131 -  
132 - public void setTimestamp(Long timestamp) {  
133 - this.timestamp = timestamp;  
134 - }  
135 -  
136 - public short getInstructType() {  
137 - return instructType;  
138 - }  
139 -  
140 - public void setInstructType(short instructType) {  
141 - this.instructType = instructType;  
142 - }  
143 -  
144 - public Short getDispatchInstruct() {  
145 - return dispatchInstruct;  
146 - }  
147 -  
148 - public void setDispatchInstruct(Short dispatchInstruct) {  
149 - this.dispatchInstruct = dispatchInstruct;  
150 - }  
151 -  
152 - public int getMsgId() {  
153 - return msgId;  
154 - }  
155 -  
156 - public void setMsgId(int msgId) {  
157 - this.msgId = msgId;  
158 - }  
159 -  
160 - public Long getAlarmTime() {  
161 - return alarmTime;  
162 - }  
163 -  
164 - public void setAlarmTime(Long alarmTime) {  
165 - this.alarmTime = alarmTime;  
166 - }  
167 -  
168 - public Long getServiceState() {  
169 - return serviceState;  
170 - }  
171 -  
172 - public void setServiceState(Long serviceState) {  
173 - this.serviceState = serviceState;  
174 - }  
175 -  
176 - public String getTxtContent() {  
177 - return txtContent;  
178 - }  
179 -  
180 - public void setTxtContent(String txtContent) {  
181 - this.txtContent = txtContent;  
182 - }  
183 - }  
184 -  
185 - public Integer getId() {  
186 - return id;  
187 - }  
188 -  
189 - public void setId(Integer id) {  
190 - this.id = id;  
191 - }  
192 -  
193 - public short getOperCode() {  
194 - return operCode;  
195 - }  
196 -  
197 - public void setOperCode(short operCode) {  
198 - this.operCode = operCode;  
199 - }  
200 -  
201 - public DirectiveData getData() {  
202 - return data;  
203 - }  
204 -  
205 - public void setData(DirectiveData data) {  
206 - this.data = data;  
207 - }  
208 -  
209 - public Integer getMsgId() {  
210 - if(this.msgId != null)  
211 - return this.msgId;  
212 - else  
213 - return this.getData().getMsgId();  
214 - }  
215 -  
216 - public void setMsgId(Integer msgId) {  
217 - this.msgId = msgId;  
218 - }  
219 -  
220 - @Override  
221 - public void setTimestamp(Long timestamp) {  
222 - if(this.data != null)  
223 - this.data.setTimestamp(timestamp);  
224 -  
225 - this.timestamp = timestamp;  
226 - }  
227 -  
228 - @Override  
229 - public void setDeviceId(String deviceId) {  
230 - if(this.data != null)  
231 - this.data.setDeviceId(deviceId);  
232 -  
233 - this.deviceId = deviceId;  
234 - }  
235 -  
236 - public Short getReply46() {  
237 - return reply46;  
238 - }  
239 -  
240 - public void setReply46(Short reply46) {  
241 - this.reply46 = reply46;  
242 - }  
243 -  
244 - public Short getReply47() {  
245 - return reply47;  
246 - }  
247 -  
248 - public void setReply47(Short reply47) {  
249 - this.reply47 = reply47;  
250 - }  
251 -  
252 - public boolean isDispatch() {  
253 - return isDispatch;  
254 - }  
255 -  
256 - public void setDispatch(boolean isDispatch) {  
257 - this.isDispatch = isDispatch;  
258 - }  
259 -  
260 - public ScheduleRealInfo getSch() {  
261 - return sch;  
262 - }  
263 -  
264 - public void setSch(ScheduleRealInfo sch) {  
265 - this.sch = sch;  
266 - }  
267 -} 1 +//package com.bsth.entity.directive;
  2 +//
  3 +//import javax.persistence.Embeddable;
  4 +//import javax.persistence.Entity;
  5 +//import javax.persistence.FetchType;
  6 +//import javax.persistence.GeneratedValue;
  7 +//import javax.persistence.Id;
  8 +//import javax.persistence.ManyToOne;
  9 +//import javax.persistence.NamedAttributeNode;
  10 +//import javax.persistence.NamedEntityGraph;
  11 +//import javax.persistence.NamedEntityGraphs;
  12 +//import javax.persistence.Table;
  13 +//import javax.persistence.Transient;
  14 +//
  15 +//import com.bsth.entity.realcontrol.ScheduleRealInfo;
  16 +//import com.fasterxml.jackson.annotation.JsonIgnore;
  17 +//
  18 +//
  19 +///**
  20 +// *
  21 +// * @ClassName: D60
  22 +// * @Description: TODO(调度指令)
  23 +// * @author PanZhao
  24 +// * @date 2016年6月7日 上午10:21:59
  25 +// *
  26 +// */
  27 +//@Entity
  28 +//@Table(name = "bsth_v_directive_60")
  29 +//@NamedEntityGraphs({
  30 +// @NamedEntityGraph(name = "directive60_sch", attributeNodes = {
  31 +// @NamedAttributeNode("sch")
  32 +// })
  33 +//})
  34 +//public class D60 extends Directive{
  35 +//
  36 +// @Id
  37 +// @GeneratedValue
  38 +// private Integer id;
  39 +//
  40 +// /**
  41 +// * 数据
  42 +// */
  43 +// private DirectiveData data;
  44 +//
  45 +// /**
  46 +// * 唯一标识
  47 +// */
  48 +// @Transient
  49 +// private Integer msgId;
  50 +//
  51 +// /**
  52 +// * 46上行
  53 +// */
  54 +// private Short reply46 = -1;
  55 +//
  56 +// /**
  57 +// * 47上行
  58 +// */
  59 +// private Short reply47 = -1;
  60 +//
  61 +// /**
  62 +// * 是否是调度指令
  63 +// * 目前调度指令和消息短语都是短语下发,所以从协议上无法区分
  64 +// */
  65 +// private boolean isDispatch;
  66 +//
  67 +// /**
  68 +// * 相关联的班次
  69 +// */
  70 +// @JsonIgnore
  71 +// @ManyToOne(fetch = FetchType.LAZY)
  72 +// private ScheduleRealInfo sch;
  73 +//
  74 +// @Embeddable
  75 +// public static class DirectiveData {
  76 +// // 公司代码
  77 +// private short companyCode;
  78 +//
  79 +// // 设备号
  80 +// @Transient
  81 +// private String deviceId;
  82 +//
  83 +// // 时间戳
  84 +// @Transient
  85 +// private Long timestamp;
  86 +//
  87 +// // 保留 默认0
  88 +// private short instructType = 0;
  89 +//
  90 +// /*
  91 +// * 调度指令 调度指令。
  92 +// * 0X00表示信息短语
  93 +// * 0X01表示取消上次指令+调度指令(闹钟有效)
  94 +// * 0x02表示为调度指令(闹钟有效)
  95 +// * 0x03表示运营状态指令(闹钟无效)
  96 +// * 0x04表示其他指令
  97 +// */
  98 +// private Short dispatchInstruct;
  99 +//
  100 +// // 唯一标识
  101 +// private int msgId;
  102 +//
  103 +// // 闹钟
  104 +// private Long alarmTime;
  105 +//
  106 +// // 多个运营状态字节
  107 +// private Long serviceState;
  108 +//
  109 +// // 消息文本
  110 +// private String txtContent;
  111 +//
  112 +// public short getCompanyCode() {
  113 +// return companyCode;
  114 +// }
  115 +//
  116 +// public void setCompanyCode(short companyCode) {
  117 +// this.companyCode = companyCode;
  118 +// }
  119 +//
  120 +// public String getDeviceId() {
  121 +// return deviceId;
  122 +// }
  123 +//
  124 +// public void setDeviceId(String deviceId) {
  125 +// this.deviceId = deviceId;
  126 +// }
  127 +//
  128 +// public Long getTimestamp() {
  129 +// return timestamp;
  130 +// }
  131 +//
  132 +// public void setTimestamp(Long timestamp) {
  133 +// this.timestamp = timestamp;
  134 +// }
  135 +//
  136 +// public short getInstructType() {
  137 +// return instructType;
  138 +// }
  139 +//
  140 +// public void setInstructType(short instructType) {
  141 +// this.instructType = instructType;
  142 +// }
  143 +//
  144 +// public Short getDispatchInstruct() {
  145 +// return dispatchInstruct;
  146 +// }
  147 +//
  148 +// public void setDispatchInstruct(Short dispatchInstruct) {
  149 +// this.dispatchInstruct = dispatchInstruct;
  150 +// }
  151 +//
  152 +// public int getMsgId() {
  153 +// return msgId;
  154 +// }
  155 +//
  156 +// public void setMsgId(int msgId) {
  157 +// this.msgId = msgId;
  158 +// }
  159 +//
  160 +// public Long getAlarmTime() {
  161 +// return alarmTime;
  162 +// }
  163 +//
  164 +// public void setAlarmTime(Long alarmTime) {
  165 +// this.alarmTime = alarmTime;
  166 +// }
  167 +//
  168 +// public Long getServiceState() {
  169 +// return serviceState;
  170 +// }
  171 +//
  172 +// public void setServiceState(Long serviceState) {
  173 +// this.serviceState = serviceState;
  174 +// }
  175 +//
  176 +// public String getTxtContent() {
  177 +// return txtContent;
  178 +// }
  179 +//
  180 +// public void setTxtContent(String txtContent) {
  181 +// this.txtContent = txtContent;
  182 +// }
  183 +// }
  184 +//
  185 +// public Integer getId() {
  186 +// return id;
  187 +// }
  188 +//
  189 +// public void setId(Integer id) {
  190 +// this.id = id;
  191 +// }
  192 +//
  193 +// public short getOperCode() {
  194 +// return operCode;
  195 +// }
  196 +//
  197 +// public void setOperCode(short operCode) {
  198 +// this.operCode = operCode;
  199 +// }
  200 +//
  201 +// public DirectiveData getData() {
  202 +// return data;
  203 +// }
  204 +//
  205 +// public void setData(DirectiveData data) {
  206 +// this.data = data;
  207 +// }
  208 +//
  209 +// public Integer getMsgId() {
  210 +// if(this.msgId != null)
  211 +// return this.msgId;
  212 +// else
  213 +// return this.getData().getMsgId();
  214 +// }
  215 +//
  216 +// public void setMsgId(Integer msgId) {
  217 +// this.msgId = msgId;
  218 +// }
  219 +//
  220 +// @Override
  221 +// public void setTimestamp(Long timestamp) {
  222 +// if(this.data != null)
  223 +// this.data.setTimestamp(timestamp);
  224 +//
  225 +// this.timestamp = timestamp;
  226 +// }
  227 +//
  228 +// @Override
  229 +// public void setDeviceId(String deviceId) {
  230 +// if(this.data != null)
  231 +// this.data.setDeviceId(deviceId);
  232 +//
  233 +// this.deviceId = deviceId;
  234 +// }
  235 +//
  236 +// public Short getReply46() {
  237 +// return reply46;
  238 +// }
  239 +//
  240 +// public void setReply46(Short reply46) {
  241 +// this.reply46 = reply46;
  242 +// }
  243 +//
  244 +// public Short getReply47() {
  245 +// return reply47;
  246 +// }
  247 +//
  248 +// public void setReply47(Short reply47) {
  249 +// this.reply47 = reply47;
  250 +// }
  251 +//
  252 +// public boolean isDispatch() {
  253 +// return isDispatch;
  254 +// }
  255 +//
  256 +// public void setDispatch(boolean isDispatch) {
  257 +// this.isDispatch = isDispatch;
  258 +// }
  259 +//
  260 +// public ScheduleRealInfo getSch() {
  261 +// return sch;
  262 +// }
  263 +//
  264 +// public void setSch(ScheduleRealInfo sch) {
  265 +// this.sch = sch;
  266 +// }
  267 +//}
src/main/java/com/bsth/entity/directive/D64.java
1 -package com.bsth.entity.directive;  
2 -  
3 -import javax.persistence.Table;  
4 -import javax.persistence.Transient;  
5 -import javax.persistence.Embeddable;  
6 -import javax.persistence.Entity;  
7 -import javax.persistence.GeneratedValue;  
8 -import javax.persistence.Id;  
9 -  
10 -/**  
11 - *  
12 - * @ClassName: D64  
13 - * @Description: TODO(线路切换指令)  
14 - * @author PanZhao  
15 - * @date 2016年6月8日 下午1:41:15  
16 - *  
17 - */  
18 -@Entity  
19 -@Table(name = "bsth_v_directive_64")  
20 -public class D64 extends Directive{  
21 -  
22 - @Id  
23 - @GeneratedValue  
24 - private Integer id;  
25 -  
26 - /**  
27 - * 设备响应应答字  
28 - * 0x06同意 0x15不同意  
29 - */  
30 - private Short respAck;  
31 -  
32 - private LineChangeData data;  
33 -  
34 - @Embeddable  
35 - public static class LineChangeData {  
36 -  
37 - private Short cityCode;  
38 -  
39 - @Transient  
40 - private String deviceId;  
41 -  
42 - private String lineId;  
43 -  
44 - public Short getCityCode() {  
45 - return cityCode;  
46 - }  
47 -  
48 - public void setCityCode(Short cityCode) {  
49 - this.cityCode = cityCode;  
50 - }  
51 -  
52 - public String getDeviceId() {  
53 - return deviceId;  
54 - }  
55 -  
56 - public void setDeviceId(String deviceId) {  
57 - this.deviceId = deviceId;  
58 - }  
59 -  
60 - public String getLineId() {  
61 - return lineId;  
62 - }  
63 -  
64 - public void setLineId(String lineId) {  
65 - this.lineId = lineId;  
66 - }  
67 - }  
68 -  
69 - public Integer getId() {  
70 - return id;  
71 - }  
72 -  
73 - public void setId(Integer id) {  
74 - this.id = id;  
75 - }  
76 -  
77 - public LineChangeData getData() {  
78 - return data;  
79 - }  
80 -  
81 - public void setData(LineChangeData data) {  
82 - this.data = data;  
83 - }  
84 -  
85 - public Short getRespAck() {  
86 - return respAck;  
87 - }  
88 -  
89 - public void setRespAck(Short respAck) {  
90 - this.respAck = respAck;  
91 - }  
92 -  
93 - @Override  
94 - public void setDeviceId(String deviceId) {  
95 - if(this.data != null)  
96 - this.data.setDeviceId(deviceId);  
97 -  
98 - this.deviceId = deviceId;  
99 - }  
100 -} 1 +//package com.bsth.entity.directive;
  2 +//
  3 +//import javax.persistence.Table;
  4 +//import javax.persistence.Transient;
  5 +//import javax.persistence.Embeddable;
  6 +//import javax.persistence.Entity;
  7 +//import javax.persistence.GeneratedValue;
  8 +//import javax.persistence.Id;
  9 +//
  10 +///**
  11 +// *
  12 +// * @ClassName: D64
  13 +// * @Description: TODO(线路切换指令)
  14 +// * @author PanZhao
  15 +// * @date 2016年6月8日 下午1:41:15
  16 +// *
  17 +// */
  18 +//@Entity
  19 +//@Table(name = "bsth_v_directive_64")
  20 +//public class D64 extends Directive{
  21 +//
  22 +// @Id
  23 +// @GeneratedValue
  24 +// private Integer id;
  25 +//
  26 +// /**
  27 +// * 设备响应应答字
  28 +// * 0x06同意 0x15不同意
  29 +// */
  30 +// private Short respAck;
  31 +//
  32 +// private LineChangeData data;
  33 +//
  34 +// @Embeddable
  35 +// public static class LineChangeData {
  36 +//
  37 +// private Short cityCode;
  38 +//
  39 +// @Transient
  40 +// private String deviceId;
  41 +//
  42 +// private String lineId;
  43 +//
  44 +// public Short getCityCode() {
  45 +// return cityCode;
  46 +// }
  47 +//
  48 +// public void setCityCode(Short cityCode) {
  49 +// this.cityCode = cityCode;
  50 +// }
  51 +//
  52 +// public String getDeviceId() {
  53 +// return deviceId;
  54 +// }
  55 +//
  56 +// public void setDeviceId(String deviceId) {
  57 +// this.deviceId = deviceId;
  58 +// }
  59 +//
  60 +// public String getLineId() {
  61 +// return lineId;
  62 +// }
  63 +//
  64 +// public void setLineId(String lineId) {
  65 +// this.lineId = lineId;
  66 +// }
  67 +// }
  68 +//
  69 +// public Integer getId() {
  70 +// return id;
  71 +// }
  72 +//
  73 +// public void setId(Integer id) {
  74 +// this.id = id;
  75 +// }
  76 +//
  77 +// public LineChangeData getData() {
  78 +// return data;
  79 +// }
  80 +//
  81 +// public void setData(LineChangeData data) {
  82 +// this.data = data;
  83 +// }
  84 +//
  85 +// public Short getRespAck() {
  86 +// return respAck;
  87 +// }
  88 +//
  89 +// public void setRespAck(Short respAck) {
  90 +// this.respAck = respAck;
  91 +// }
  92 +//
  93 +// @Override
  94 +// public void setDeviceId(String deviceId) {
  95 +// if(this.data != null)
  96 +// this.data.setDeviceId(deviceId);
  97 +//
  98 +// this.deviceId = deviceId;
  99 +// }
  100 +//}
src/main/java/com/bsth/entity/directive/D80.java
1 -package com.bsth.entity.directive;  
2 -  
3 -import java.util.Date;  
4 -  
5 -import javax.persistence.CascadeType;  
6 -import javax.persistence.Embeddable;  
7 -import javax.persistence.Entity;  
8 -import javax.persistence.FetchType;  
9 -import javax.persistence.GeneratedValue;  
10 -import javax.persistence.Id;  
11 -import javax.persistence.NamedAttributeNode;  
12 -import javax.persistence.NamedEntityGraph;  
13 -import javax.persistence.NamedEntityGraphs;  
14 -import javax.persistence.OneToOne;  
15 -import javax.persistence.Table;  
16 -import javax.persistence.Transient;  
17 -  
18 -/**  
19 - *  
20 - * @ClassName: D80  
21 - * @Description: TODO(驾驶员上报)  
22 - * @author PanZhao  
23 - * @date 2016年6月8日 下午12:36:42  
24 - *  
25 - */  
26 -@Entity  
27 -@Table(name = "bsth_v_report_80")  
28 -@NamedEntityGraphs({  
29 - @NamedEntityGraph(name = "directive80_c0", attributeNodes = {  
30 - @NamedAttributeNode("c0")  
31 - })  
32 -})  
33 -public class D80 {  
34 -  
35 - @Id  
36 - @GeneratedValue  
37 - private Integer id;  
38 -  
39 - /**  
40 - * 设备编号  
41 - */  
42 - private String deviceId;  
43 -  
44 - /**  
45 - * 时间戳(ms)  
46 - */  
47 - private Long timestamp;  
48 -  
49 - /**  
50 - * 一级协议 0xC0  
51 - */  
52 - private Short operCode;  
53 -  
54 - private DriverReportData data;  
55 -  
56 - /**  
57 - * c0 回复  
58 - */  
59 - @OneToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY)  
60 - private DC0 c0;  
61 -  
62 - /** 调度员是否确认 */  
63 - private boolean confirm;  
64 -  
65 - /** 处理人 */  
66 - private String handleUser;  
67 -  
68 - /** 处理结果 0:同意 -1:不同意 */  
69 - private int confirmRs;  
70 -  
71 - /** 处理时间 */  
72 - private Date handleTime;  
73 -  
74 - @Embeddable  
75 - public static class DriverReportData {  
76 -  
77 - /**  
78 - * 0x86  
79 - */  
80 - private Short operCode2;  
81 -  
82 - /**  
83 - * 请求代码 0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70  
84 - * 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警  
85 - */  
86 - private Short requestCode;  
87 -  
88 - /**  
89 - * 线路编码  
90 - */  
91 - private Integer lineId;  
92 -  
93 - /**  
94 - * 车辆内部编码  
95 - */  
96 - @Transient  
97 - private String nbbm;  
98 -  
99 - public Short getOperCode2() {  
100 - return operCode2;  
101 - }  
102 -  
103 - public void setOperCode2(Short operCode2) {  
104 - this.operCode2 = operCode2;  
105 - }  
106 -  
107 - public Short getRequestCode() {  
108 - return requestCode;  
109 - }  
110 -  
111 - public void setRequestCode(Short requestCode) {  
112 - this.requestCode = requestCode;  
113 - }  
114 -  
115 - public Integer getLineId() {  
116 - return lineId;  
117 - }  
118 -  
119 - public void setLineId(Integer lineId) {  
120 - this.lineId = lineId;  
121 - }  
122 -  
123 - public String getNbbm() {  
124 - return nbbm;  
125 - }  
126 -  
127 - public void setNbbm(String nbbm) {  
128 - this.nbbm = nbbm;  
129 - }  
130 - }  
131 -  
132 - @Transient  
133 - private String timeStr;  
134 -  
135 - public Integer getId() {  
136 - return id;  
137 - }  
138 -  
139 - public void setId(Integer id) {  
140 - this.id = id;  
141 - }  
142 -  
143 - public String getDeviceId() {  
144 - return deviceId;  
145 - }  
146 -  
147 - public void setDeviceId(String deviceId) {  
148 - this.deviceId = deviceId;  
149 - }  
150 -  
151 - public Long getTimestamp() {  
152 - return timestamp;  
153 - }  
154 -  
155 - public void setTimestamp(Long timestamp) {  
156 - this.timestamp = timestamp;  
157 - }  
158 -  
159 - public Short getOperCode() {  
160 - return operCode;  
161 - }  
162 -  
163 - public void setOperCode(Short operCode) {  
164 - this.operCode = operCode;  
165 - }  
166 -  
167 - public DriverReportData getData() {  
168 - return data;  
169 - }  
170 -  
171 - public void setData(DriverReportData data) {  
172 - this.data = data;  
173 - }  
174 -  
175 - public DC0 getC0() {  
176 - return c0;  
177 - }  
178 -  
179 - public void setC0(DC0 c0) {  
180 - this.c0 = c0;  
181 - }  
182 -  
183 - public boolean isConfirm() {  
184 - return confirm;  
185 - }  
186 -  
187 - public void setConfirm(boolean confirm) {  
188 - this.confirm = confirm;  
189 - }  
190 -  
191 - public int getConfirmRs() {  
192 - return confirmRs;  
193 - }  
194 -  
195 - public void setConfirmRs(int confirmRs) {  
196 - this.confirmRs = confirmRs;  
197 - }  
198 -  
199 - public String getHandleUser() {  
200 - return handleUser;  
201 - }  
202 -  
203 - public void setHandleUser(String handleUser) {  
204 - this.handleUser = handleUser;  
205 - }  
206 -  
207 - public String getTimeStr() {  
208 - return timeStr;  
209 - }  
210 -  
211 - public void setTimeStr(String timeStr) {  
212 - this.timeStr = timeStr;  
213 - }  
214 -  
215 - public Date getHandleTime() {  
216 - return handleTime;  
217 - }  
218 -  
219 - public void setHandleTime(Date handleTime) {  
220 - this.handleTime = handleTime;  
221 - }  
222 -} 1 +//package com.bsth.entity.directive;
  2 +//
  3 +//import java.util.Date;
  4 +//
  5 +//import javax.persistence.CascadeType;
  6 +//import javax.persistence.Embeddable;
  7 +//import javax.persistence.Entity;
  8 +//import javax.persistence.FetchType;
  9 +//import javax.persistence.GeneratedValue;
  10 +//import javax.persistence.Id;
  11 +//import javax.persistence.NamedAttributeNode;
  12 +//import javax.persistence.NamedEntityGraph;
  13 +//import javax.persistence.NamedEntityGraphs;
  14 +//import javax.persistence.OneToOne;
  15 +//import javax.persistence.Table;
  16 +//import javax.persistence.Transient;
  17 +//
  18 +///**
  19 +// *
  20 +// * @ClassName: D80
  21 +// * @Description: TODO(驾驶员上报)
  22 +// * @author PanZhao
  23 +// * @date 2016年6月8日 下午12:36:42
  24 +// *
  25 +// */
  26 +//@Entity
  27 +//@Table(name = "bsth_v_report_80")
  28 +//@NamedEntityGraphs({
  29 +// @NamedEntityGraph(name = "directive80_c0", attributeNodes = {
  30 +// @NamedAttributeNode("c0")
  31 +// })
  32 +//})
  33 +//public class D80 {
  34 +//
  35 +// @Id
  36 +// @GeneratedValue
  37 +// private Integer id;
  38 +//
  39 +// /**
  40 +// * 设备编号
  41 +// */
  42 +// private String deviceId;
  43 +//
  44 +// /**
  45 +// * 时间戳(ms)
  46 +// */
  47 +// private Long timestamp;
  48 +//
  49 +// /**
  50 +// * 一级协议 0xC0
  51 +// */
  52 +// private Short operCode;
  53 +//
  54 +// private DriverReportData data;
  55 +//
  56 +// /**
  57 +// * c0 回复
  58 +// */
  59 +// @OneToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY)
  60 +// private DC0 c0;
  61 +//
  62 +// /** 调度员是否确认 */
  63 +// private boolean confirm;
  64 +//
  65 +// /** 处理人 */
  66 +// private String handleUser;
  67 +//
  68 +// /** 处理结果 0:同意 -1:不同意 */
  69 +// private int confirmRs;
  70 +//
  71 +// /** 处理时间 */
  72 +// private Date handleTime;
  73 +//
  74 +// @Embeddable
  75 +// public static class DriverReportData {
  76 +//
  77 +// /**
  78 +// * 0x86
  79 +// */
  80 +// private Short operCode2;
  81 +//
  82 +// /**
  83 +// * 请求代码 0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70
  84 +// * 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警
  85 +// */
  86 +// private Short requestCode;
  87 +//
  88 +// /**
  89 +// * 线路编码
  90 +// */
  91 +// private Integer lineId;
  92 +//
  93 +// /**
  94 +// * 车辆内部编码
  95 +// */
  96 +// @Transient
  97 +// private String nbbm;
  98 +//
  99 +// public Short getOperCode2() {
  100 +// return operCode2;
  101 +// }
  102 +//
  103 +// public void setOperCode2(Short operCode2) {
  104 +// this.operCode2 = operCode2;
  105 +// }
  106 +//
  107 +// public Short getRequestCode() {
  108 +// return requestCode;
  109 +// }
  110 +//
  111 +// public void setRequestCode(Short requestCode) {
  112 +// this.requestCode = requestCode;
  113 +// }
  114 +//
  115 +// public Integer getLineId() {
  116 +// return lineId;
  117 +// }
  118 +//
  119 +// public void setLineId(Integer lineId) {
  120 +// this.lineId = lineId;
  121 +// }
  122 +//
  123 +// public String getNbbm() {
  124 +// return nbbm;
  125 +// }
  126 +//
  127 +// public void setNbbm(String nbbm) {
  128 +// this.nbbm = nbbm;
  129 +// }
  130 +// }
  131 +//
  132 +// @Transient
  133 +// private String timeStr;
  134 +//
  135 +// public Integer getId() {
  136 +// return id;
  137 +// }
  138 +//
  139 +// public void setId(Integer id) {
  140 +// this.id = id;
  141 +// }
  142 +//
  143 +// public String getDeviceId() {
  144 +// return deviceId;
  145 +// }
  146 +//
  147 +// public void setDeviceId(String deviceId) {
  148 +// this.deviceId = deviceId;
  149 +// }
  150 +//
  151 +// public Long getTimestamp() {
  152 +// return timestamp;
  153 +// }
  154 +//
  155 +// public void setTimestamp(Long timestamp) {
  156 +// this.timestamp = timestamp;
  157 +// }
  158 +//
  159 +// public Short getOperCode() {
  160 +// return operCode;
  161 +// }
  162 +//
  163 +// public void setOperCode(Short operCode) {
  164 +// this.operCode = operCode;
  165 +// }
  166 +//
  167 +// public DriverReportData getData() {
  168 +// return data;
  169 +// }
  170 +//
  171 +// public void setData(DriverReportData data) {
  172 +// this.data = data;
  173 +// }
  174 +//
  175 +// public DC0 getC0() {
  176 +// return c0;
  177 +// }
  178 +//
  179 +// public void setC0(DC0 c0) {
  180 +// this.c0 = c0;
  181 +// }
  182 +//
  183 +// public boolean isConfirm() {
  184 +// return confirm;
  185 +// }
  186 +//
  187 +// public void setConfirm(boolean confirm) {
  188 +// this.confirm = confirm;
  189 +// }
  190 +//
  191 +// public int getConfirmRs() {
  192 +// return confirmRs;
  193 +// }
  194 +//
  195 +// public void setConfirmRs(int confirmRs) {
  196 +// this.confirmRs = confirmRs;
  197 +// }
  198 +//
  199 +// public String getHandleUser() {
  200 +// return handleUser;
  201 +// }
  202 +//
  203 +// public void setHandleUser(String handleUser) {
  204 +// this.handleUser = handleUser;
  205 +// }
  206 +//
  207 +// public String getTimeStr() {
  208 +// return timeStr;
  209 +// }
  210 +//
  211 +// public void setTimeStr(String timeStr) {
  212 +// this.timeStr = timeStr;
  213 +// }
  214 +//
  215 +// public Date getHandleTime() {
  216 +// return handleTime;
  217 +// }
  218 +//
  219 +// public void setHandleTime(Date handleTime) {
  220 +// this.handleTime = handleTime;
  221 +// }
  222 +//}
src/main/java/com/bsth/entity/directive/DC0.java
1 -package com.bsth.entity.directive;  
2 -  
3 -import javax.persistence.Embeddable;  
4 -import javax.persistence.Entity;  
5 -import javax.persistence.GeneratedValue;  
6 -import javax.persistence.Id;  
7 -import javax.persistence.Table;  
8 -  
9 -/**  
10 - *  
11 - * @ClassName: DC0  
12 - * @Description: TODO(C0协议,回复驾驶员上报)  
13 - * @author PanZhao  
14 - * @date 2016年7月8日 上午10:19:23  
15 - *  
16 - */  
17 -@Entity  
18 -@Table(name = "bsth_v_C0")  
19 -public class DC0 {  
20 -  
21 - @Id  
22 - @GeneratedValue  
23 - private Integer id;  
24 -  
25 - /**  
26 - * 设备号  
27 - */  
28 - private String deviceId;  
29 -  
30 - /**  
31 - * 时间戳  
32 - */  
33 - private Long timestamp;  
34 -  
35 - /**  
36 - * 一级协议  
37 - */  
38 - private Short operCode;  
39 -  
40 - private DC0Data data;  
41 -  
42 - @Embeddable  
43 - public static class DC0Data {  
44 -  
45 - /**  
46 - * 二级协议  
47 - */  
48 - private Short operCode2;  
49 -  
50 - /**  
51 - * 请求应答字 0x06同意 0x15不同意  
52 - */  
53 - private Short requestAck;  
54 -  
55 - public Short getOperCode2() {  
56 - return operCode2;  
57 - }  
58 -  
59 - public void setOperCode2(Short operCode2) {  
60 - this.operCode2 = operCode2;  
61 - }  
62 -  
63 - public Short getRequestAck() {  
64 - return requestAck;  
65 - }  
66 -  
67 - public void setRequestAck(Short requestAck) {  
68 - this.requestAck = requestAck;  
69 - }  
70 - }  
71 -  
72 - public Integer getId() {  
73 - return id;  
74 - }  
75 -  
76 - public void setId(Integer id) {  
77 - this.id = id;  
78 - }  
79 -  
80 - public String getDeviceId() {  
81 - return deviceId;  
82 - }  
83 -  
84 - public void setDeviceId(String deviceId) {  
85 - this.deviceId = deviceId;  
86 - }  
87 -  
88 - public Long getTimestamp() {  
89 - return timestamp;  
90 - }  
91 -  
92 - public void setTimestamp(Long timestamp) {  
93 - this.timestamp = timestamp;  
94 - }  
95 -  
96 - public Short getOperCode() {  
97 - return operCode;  
98 - }  
99 -  
100 - public void setOperCode(Short operCode) {  
101 - this.operCode = operCode;  
102 - }  
103 -  
104 - public DC0Data getData() {  
105 - return data;  
106 - }  
107 -  
108 - public void setData(DC0Data data) {  
109 - this.data = data;  
110 - }  
111 -} 1 +//package com.bsth.entity.directive;
  2 +//
  3 +//import javax.persistence.Embeddable;
  4 +//import javax.persistence.Entity;
  5 +//import javax.persistence.GeneratedValue;
  6 +//import javax.persistence.Id;
  7 +//import javax.persistence.Table;
  8 +//
  9 +///**
  10 +// *
  11 +// * @ClassName: DC0
  12 +// * @Description: TODO(C0协议,回复驾驶员上报)
  13 +// * @author PanZhao
  14 +// * @date 2016年7月8日 上午10:19:23
  15 +// *
  16 +// */
  17 +//@Entity
  18 +//@Table(name = "bsth_v_C0")
  19 +//public class DC0 {
  20 +//
  21 +// @Id
  22 +// @GeneratedValue
  23 +// private Integer id;
  24 +//
  25 +// /**
  26 +// * 设备号
  27 +// */
  28 +// private String deviceId;
  29 +//
  30 +// /**
  31 +// * 时间戳
  32 +// */
  33 +// private Long timestamp;
  34 +//
  35 +// /**
  36 +// * 一级协议
  37 +// */
  38 +// private Short operCode;
  39 +//
  40 +// private DC0Data data;
  41 +//
  42 +// @Embeddable
  43 +// public static class DC0Data {
  44 +//
  45 +// /**
  46 +// * 二级协议
  47 +// */
  48 +// private Short operCode2;
  49 +//
  50 +// /**
  51 +// * 请求应答字 0x06同意 0x15不同意
  52 +// */
  53 +// private Short requestAck;
  54 +//
  55 +// public Short getOperCode2() {
  56 +// return operCode2;
  57 +// }
  58 +//
  59 +// public void setOperCode2(Short operCode2) {
  60 +// this.operCode2 = operCode2;
  61 +// }
  62 +//
  63 +// public Short getRequestAck() {
  64 +// return requestAck;
  65 +// }
  66 +//
  67 +// public void setRequestAck(Short requestAck) {
  68 +// this.requestAck = requestAck;
  69 +// }
  70 +// }
  71 +//
  72 +// public Integer getId() {
  73 +// return id;
  74 +// }
  75 +//
  76 +// public void setId(Integer id) {
  77 +// this.id = id;
  78 +// }
  79 +//
  80 +// public String getDeviceId() {
  81 +// return deviceId;
  82 +// }
  83 +//
  84 +// public void setDeviceId(String deviceId) {
  85 +// this.deviceId = deviceId;
  86 +// }
  87 +//
  88 +// public Long getTimestamp() {
  89 +// return timestamp;
  90 +// }
  91 +//
  92 +// public void setTimestamp(Long timestamp) {
  93 +// this.timestamp = timestamp;
  94 +// }
  95 +//
  96 +// public Short getOperCode() {
  97 +// return operCode;
  98 +// }
  99 +//
  100 +// public void setOperCode(Short operCode) {
  101 +// this.operCode = operCode;
  102 +// }
  103 +//
  104 +// public DC0Data getData() {
  105 +// return data;
  106 +// }
  107 +//
  108 +// public void setData(DC0Data data) {
  109 +// this.data = data;
  110 +// }
  111 +//}
src/main/java/com/bsth/repository/directive/D60Repository.java
1 -package com.bsth.repository.directive;  
2 -  
3 -import java.util.List;  
4 -  
5 -import org.springframework.data.domain.Page;  
6 -import org.springframework.data.domain.Pageable;  
7 -import org.springframework.data.jpa.domain.Specification;  
8 -import org.springframework.data.jpa.repository.EntityGraph;  
9 -import org.springframework.data.jpa.repository.Query;  
10 -import org.springframework.stereotype.Repository;  
11 -  
12 -import com.bsth.entity.directive.D60;  
13 -import com.bsth.repository.BaseRepository;  
14 -  
15 -@Repository  
16 -public interface D60Repository extends BaseRepository<D60, Integer>{  
17 -  
18 - @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)  
19 - @Query("select d from Directive60 d where d.timestamp > ?1")  
20 - public List<D60> findByGtTime(Long ts);  
21 -  
22 - @Query(value = "SELECT IFNULL(num,0) as maxId from (SELECT MAX(msg_id) as num FROM bsth_v_directive_60) d", nativeQuery = true)  
23 - Integer maxMsgId();  
24 -  
25 -  
26 - @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)  
27 - @Override  
28 - Page<D60> findAll(Specification<D60> spec, Pageable pageable);  
29 -  
30 - @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)  
31 - @Override  
32 - List<D60> findAll(Specification<D60> spec);  
33 -} 1 +//package com.bsth.repository.directive;
  2 +//
  3 +//import java.util.List;
  4 +//
  5 +//import org.springframework.data.domain.Page;
  6 +//import org.springframework.data.domain.Pageable;
  7 +//import org.springframework.data.jpa.domain.Specification;
  8 +//import org.springframework.data.jpa.repository.EntityGraph;
  9 +//import org.springframework.data.jpa.repository.Query;
  10 +//import org.springframework.stereotype.Repository;
  11 +//
  12 +//import com.bsth.entity.directive.D60;
  13 +//import com.bsth.repository.BaseRepository;
  14 +//
  15 +//@Repository
  16 +//public interface D60Repository extends BaseRepository<D60, Integer>{
  17 +//
  18 +// @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)
  19 +// @Query("select d from Directive60 d where d.timestamp > ?1")
  20 +// public List<D60> findByGtTime(Long ts);
  21 +//
  22 +// @Query(value = "SELECT IFNULL(num,0) as maxId from (SELECT MAX(msg_id) as num FROM bsth_v_directive_60) d", nativeQuery = true)
  23 +// Integer maxMsgId();
  24 +//
  25 +//
  26 +// @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)
  27 +// @Override
  28 +// Page<D60> findAll(Specification<D60> spec, Pageable pageable);
  29 +//
  30 +// @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)
  31 +// @Override
  32 +// List<D60> findAll(Specification<D60> spec);
  33 +//}
src/main/java/com/bsth/repository/directive/D64Repository.java
1 -package com.bsth.repository.directive;  
2 -  
3 -import org.springframework.stereotype.Repository;  
4 -  
5 -import com.bsth.entity.directive.D64;  
6 -import com.bsth.repository.BaseRepository;  
7 -  
8 -@Repository  
9 -public interface D64Repository extends BaseRepository<D64, Integer>{  
10 -  
11 -} 1 +//package com.bsth.repository.directive;
  2 +//
  3 +//import org.springframework.stereotype.Repository;
  4 +//
  5 +//import com.bsth.entity.directive.D64;
  6 +//import com.bsth.repository.BaseRepository;
  7 +//
  8 +//@Repository
  9 +//public interface D64Repository extends BaseRepository<D64, Integer>{
  10 +//
  11 +//}
src/main/java/com/bsth/repository/directive/D80Repository.java
1 -package com.bsth.repository.directive;  
2 -  
3 -import java.util.List;  
4 -  
5 -import org.springframework.data.domain.Page;  
6 -import org.springframework.data.domain.Pageable;  
7 -import org.springframework.data.jpa.domain.Specification;  
8 -import org.springframework.data.jpa.repository.EntityGraph;  
9 -import org.springframework.data.jpa.repository.Query;  
10 -import org.springframework.stereotype.Repository;  
11 -  
12 -import com.bsth.entity.directive.D80;  
13 -import com.bsth.repository.BaseRepository;  
14 -  
15 -@Repository  
16 -public interface D80Repository extends BaseRepository<D80, Integer>{  
17 -  
18 - @EntityGraph(value = "directive80_c0", type = EntityGraph.EntityGraphType.FETCH)  
19 - @Override  
20 - Page<D80> findAll(Specification<D80> spec, Pageable pageable);  
21 -  
22 - @EntityGraph(value = "directive80_c0", type = EntityGraph.EntityGraphType.FETCH)  
23 - @Query("select d from Directive80 d where d.timestamp > ?1")  
24 - List<D80> findByGtTime(long timestamp);  
25 -} 1 +//package com.bsth.repository.directive;
  2 +//
  3 +//import java.util.List;
  4 +//
  5 +//import org.springframework.data.domain.Page;
  6 +//import org.springframework.data.domain.Pageable;
  7 +//import org.springframework.data.jpa.domain.Specification;
  8 +//import org.springframework.data.jpa.repository.EntityGraph;
  9 +//import org.springframework.data.jpa.repository.Query;
  10 +//import org.springframework.stereotype.Repository;
  11 +//
  12 +//import com.bsth.entity.directive.D80;
  13 +//import com.bsth.repository.BaseRepository;
  14 +//
  15 +//@Repository
  16 +//public interface D80Repository extends BaseRepository<D80, Integer>{
  17 +//
  18 +// @EntityGraph(value = "directive80_c0", type = EntityGraph.EntityGraphType.FETCH)
  19 +// @Override
  20 +// Page<D80> findAll(Specification<D80> spec, Pageable pageable);
  21 +//
  22 +// @EntityGraph(value = "directive80_c0", type = EntityGraph.EntityGraphType.FETCH)
  23 +// @Query("select d from Directive80 d where d.timestamp > ?1")
  24 +// List<D80> findByGtTime(long timestamp);
  25 +//}
src/main/java/com/bsth/repository/directive/DC0Repository.java
1 -package com.bsth.repository.directive;  
2 -  
3 -import org.springframework.stereotype.Repository;  
4 -  
5 -import com.bsth.entity.directive.DC0;  
6 -import com.bsth.repository.BaseRepository;  
7 -  
8 -@Repository  
9 -public interface DC0Repository extends BaseRepository<DC0, Integer>{  
10 -  
11 -} 1 +//package com.bsth.repository.directive;
  2 +//
  3 +//import org.springframework.stereotype.Repository;
  4 +//
  5 +//import com.bsth.entity.directive.DC0;
  6 +//import com.bsth.repository.BaseRepository;
  7 +//
  8 +//@Repository
  9 +//public interface DC0Repository extends BaseRepository<DC0, Integer>{
  10 +//
  11 +//}
src/main/java/com/bsth/service/directive/DirectiveService.java
1 -package com.bsth.service.directive;  
2 -  
3 -  
4 -import java.util.List;  
5 -import java.util.Map;  
6 -  
7 -import org.springframework.data.domain.Page;  
8 -import org.springframework.data.domain.PageRequest;  
9 -  
10 -import com.bsth.entity.directive.D60;  
11 -import com.bsth.entity.directive.D80;  
12 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
13 -import com.bsth.service.BaseService;  
14 -  
15 -public interface DirectiveService extends BaseService<D60, Integer>{  
16 -  
17 - /**  
18 - *  
19 - * @Title: send60Phrase  
20 - * @Description: TODO(60短语下发)  
21 - * @param @param nbbm 车辆内部编码  
22 - * @param @param text 短语  
23 - * @return int 返回类型  
24 - * @throws  
25 - */  
26 - int send60Phrase(String nbbm, String text, String sender);  
27 -  
28 - /**  
29 - *  
30 - * @Title: send60Dispatch  
31 - * @Description: TODO(调度指令下发)  
32 - * @param @param sch 要下发的班次  
33 - * @param @param finish 已完成的班次数  
34 - * @throws  
35 - */  
36 - int send60Dispatch(ScheduleRealInfo sch, int finish, String sender);  
37 -  
38 - /**  
39 - *  
40 - * @Title: send60Dispatch  
41 - * @Description: TODO(调度指令下发)  
42 - * @param @param id 班次ID  
43 - * @throws  
44 - */  
45 - int send60Dispatch(Long id, String sender);  
46 -  
47 - //60营运指令  
48 - int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender);  
49 -  
50 - /**  
51 - *  
52 - * @Title: lineChange  
53 - * @Description: TODO(线路切换)  
54 - * @param @param nbbm 车辆内部编码  
55 - * @param @param lineId 新线路编码  
56 - * @throws  
57 - */  
58 - int lineChange(String nbbm, Integer lineId, String sender);  
59 -  
60 - /**  
61 - *  
62 - * @Title: upDownChange  
63 - * @Description: TODO(切换上下行)  
64 - * @param @param nbbm 车辆内部编码  
65 - * @param @param upDonw 上下行 0 上行 1 下行  
66 - * @throws  
67 - */  
68 - int upDownChange(String nbbm, Integer upDown, String sender);  
69 -  
70 - /**  
71 - *  
72 - * @Title: sendDirectiveState  
73 - * @Description: TODO(向页面推送班次指令状态)  
74 - * @throws  
75 - */  
76 - void sendDirectiveToPage(ScheduleRealInfo sch);  
77 -  
78 - Map<String, List<D80>> findNoCofm80(String lineCodes);  
79 -  
80 - Map<String, Object> reply80(int id, int reply);  
81 -  
82 - Map<String, Object> findDirective(String nbbm, int dType, int page, int size);  
83 -  
84 - Page<D80> findAll80(Map<String, Object> map, PageRequest pageRequest);  
85 -} 1 +//package com.bsth.service.directive;
  2 +//
  3 +//
  4 +//import java.util.List;
  5 +//import java.util.Map;
  6 +//
  7 +//import org.springframework.data.domain.Page;
  8 +//import org.springframework.data.domain.PageRequest;
  9 +//
  10 +//import com.bsth.entity.directive.D60;
  11 +//import com.bsth.entity.directive.D80;
  12 +//import com.bsth.entity.realcontrol.ScheduleRealInfo;
  13 +//import com.bsth.service.BaseService;
  14 +//
  15 +//public interface DirectiveService extends BaseService<D60, Integer>{
  16 +//
  17 +// /**
  18 +// *
  19 +// * @Title: send60Phrase
  20 +// * @Description: TODO(60短语下发)
  21 +// * @param @param nbbm 车辆内部编码
  22 +// * @param @param text 短语
  23 +// * @return int 返回类型
  24 +// * @throws
  25 +// */
  26 +// int send60Phrase(String nbbm, String text, String sender);
  27 +//
  28 +// /**
  29 +// *
  30 +// * @Title: send60Dispatch
  31 +// * @Description: TODO(调度指令下发)
  32 +// * @param @param sch 要下发的班次
  33 +// * @param @param finish 已完成的班次数
  34 +// * @throws
  35 +// */
  36 +// int send60Dispatch(ScheduleRealInfo sch, int finish, String sender);
  37 +//
  38 +// /**
  39 +// *
  40 +// * @Title: send60Dispatch
  41 +// * @Description: TODO(调度指令下发)
  42 +// * @param @param id 班次ID
  43 +// * @throws
  44 +// */
  45 +// int send60Dispatch(Long id, String sender);
  46 +//
  47 +// //60营运指令
  48 +// int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender);
  49 +//
  50 +// /**
  51 +// *
  52 +// * @Title: lineChange
  53 +// * @Description: TODO(线路切换)
  54 +// * @param @param nbbm 车辆内部编码
  55 +// * @param @param lineId 新线路编码
  56 +// * @throws
  57 +// */
  58 +// int lineChange(String nbbm, Integer lineId, String sender);
  59 +//
  60 +// /**
  61 +// *
  62 +// * @Title: upDownChange
  63 +// * @Description: TODO(切换上下行)
  64 +// * @param @param nbbm 车辆内部编码
  65 +// * @param @param upDonw 上下行 0 上行 1 下行
  66 +// * @throws
  67 +// */
  68 +// int upDownChange(String nbbm, Integer upDown, String sender);
  69 +//
  70 +// /**
  71 +// *
  72 +// * @Title: sendDirectiveState
  73 +// * @Description: TODO(向页面推送班次指令状态)
  74 +// * @throws
  75 +// */
  76 +// void sendDirectiveToPage(ScheduleRealInfo sch);
  77 +//
  78 +// Map<String, List<D80>> findNoCofm80(String lineCodes);
  79 +//
  80 +// Map<String, Object> reply80(int id, int reply);
  81 +//
  82 +// Map<String, Object> findDirective(String nbbm, int dType, int page, int size);
  83 +//
  84 +// Page<D80> findAll80(Map<String, Object> map, PageRequest pageRequest);
  85 +//}
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
1 -package com.bsth.service.directive;  
2 -  
3 -import java.text.SimpleDateFormat;  
4 -import java.util.ArrayList;  
5 -import java.util.Collections;  
6 -import java.util.Date;  
7 -import java.util.HashMap;  
8 -import java.util.List;  
9 -import java.util.Map;  
10 -  
11 -import org.apache.commons.lang3.StringUtils;  
12 -import org.slf4j.Logger;  
13 -import org.slf4j.LoggerFactory;  
14 -import org.springframework.beans.factory.annotation.Autowired;  
15 -import org.springframework.data.domain.Page;  
16 -import org.springframework.data.domain.PageRequest;  
17 -import org.springframework.stereotype.Service;  
18 -  
19 -import com.alibaba.fastjson.JSON;  
20 -import com.alibaba.fastjson.JSONObject;  
21 -import com.bsth.common.ResponseCode;  
22 -import com.bsth.entity.directive.D60;  
23 -import com.bsth.entity.directive.D64;  
24 -import com.bsth.entity.directive.D80;  
25 -import com.bsth.entity.directive.DC0;  
26 -import com.bsth.entity.directive.DC0.DC0Data;  
27 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
28 -import com.bsth.entity.search.CustomerSpecs;  
29 -import com.bsth.entity.sys.SysUser;  
30 -import com.bsth.repository.directive.D60Repository;  
31 -import com.bsth.repository.directive.D64Repository;  
32 -import com.bsth.repository.directive.D80Repository;  
33 -import com.bsth.security.util.SecurityUtils;  
34 -import com.bsth.service.impl.BaseServiceImpl;  
35 -import com.bsth.service.realcontrol.buffer.ScheduleBuffer;  
36 -import com.bsth.util.DateUtils;  
37 -import com.bsth.vehicle.common.CommonMapped;  
38 -import com.bsth.vehicle.directive.buffer.DirectiveBuffer;  
39 -import com.bsth.vehicle.directive.entity.Directive;  
40 -import com.bsth.vehicle.directive.util.DirectiveDataFactory;  
41 -import com.bsth.vehicle.directive.util.HttpUtils;  
42 -import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer;  
43 -import com.bsth.vehicle.gpsdata.entity.GpsRealData;  
44 -import com.bsth.websocket.handler.RealControlSocketHandler;  
45 -import com.google.common.base.Splitter;  
46 -  
47 -@Service  
48 -public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implements DirectiveService {  
49 -  
50 - Logger logger = LoggerFactory.getLogger(this.getClass());  
51 -  
52 - @Autowired  
53 - D60Repository d60Repository;  
54 -  
55 - @Autowired  
56 - GpsRealDataBuffer gpsRealDataBuffer;  
57 -  
58 - @Autowired  
59 - D64Repository d64Repository;  
60 -  
61 - @Autowired  
62 - RealControlSocketHandler socketHandler;  
63 -  
64 - @Autowired  
65 - D80Repository d80Repository;  
66 -  
67 - SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH点mm分"), sdfHHmm2 = new SimpleDateFormat("HH:mm");  
68 -  
69 - static Long schDiff = 1000 * 60 * 60L;  
70 -  
71 - @Override  
72 - public int send60Phrase(String nbbm, String text, String sender) {  
73 - D60 directive = null;  
74 - try {  
75 - directive = create60Data(nbbm, text, (short) 0x00, null);  
76 - } catch (Exception e) {  
77 - logger.error("发送消息短语出现异常", e);  
78 - return -1;  
79 - }  
80 -  
81 - if (null == directive)  
82 - return -1;  
83 -  
84 - // 发送指令  
85 - int code = HttpUtils.postJson(JSON.toJSONString(directive));  
86 - if(null != sender)  
87 - directive.setSender(sender);  
88 - directive.setHttpCode(code);  
89 - // 添加到缓存,等待入库  
90 - //DirectiveBuffer.put(directive);  
91 -  
92 - if (code != 0) {  
93 - directive.setErrorText("网关通讯失败, code: " + code);  
94 - //DirectiveBuffer.transientList.add(directive);  
95 - }  
96 - return code;  
97 - }  
98 -  
99 - @Override  
100 - public int send60Dispatch(ScheduleRealInfo sch, int finish, String sender) {  
101 - D60 directive = null;  
102 - try {  
103 - // 如果发车时间距当前时间较远,则不发送  
104 - /*if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {  
105 - return -2;  
106 - }*/  
107 -  
108 - String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getDfsjT())) + ",由"  
109 - + sch.getQdzName() + "发往" + sch.getZdzName();  
110 -  
111 - ScheduleRealInfo nextSch = ScheduleBuffer.getNext(sch);  
112 - //下发0x02指令 调度指令(闹钟有效)  
113 - /*directive = DirectiveDataFactory.createDirective6002(sch.getClZbh(), text, (short) 0x02  
114 - , Integer.parseInt(nextSch.getXlDir()), 0, new Date(System.currentTimeMillis() + 1000 * 30));*/  
115 - } catch (Exception e) {  
116 - logger.error("生成调度指令时出现异常", e);  
117 - return -1;  
118 - }  
119 -  
120 - if (null == directive)  
121 - return -1;  
122 - if(null != sender)  
123 - directive.setSender(sender);  
124 - else  
125 - directive.setSender("系统");  
126 -  
127 - // 发送指令  
128 - int code = HttpUtils.postJson(JSON.toJSONString(directive));  
129 -  
130 - sch.setDirectiveState(60);  
131 - // 添加到缓存,等待入库  
132 - directive.setDispatch(true);  
133 - directive.setSch(sch);  
134 - directive.setHttpCode(code);  
135 - //DirectiveBuffer.put(directive);  
136 -  
137 - if (code == 0) {  
138 - // 通知页面,消息已发出  
139 - sendDirectiveToPage(sch);  
140 - } else {  
141 - directive.setErrorText("网关通讯失败, code: " + code);  
142 - //DirectiveBuffer.transientList.add(directive);  
143 - }  
144 - return code;  
145 - }  
146 -  
147 - /**  
148 - *  
149 - * @Title: sendDirectiveState @Description: TODO(向页面推送班次指令状态) @throws  
150 - */  
151 - @Override  
152 - public void sendDirectiveToPage(ScheduleRealInfo sch) {  
153 - JSONObject json = new JSONObject();  
154 - json.put("fn", "directive");  
155 - json.put("t", sch);  
156 - socketHandler.sendMessageToLine(Integer.parseInt(sch.getXlBm()), json.toJSONString());  
157 - }  
158 -  
159 - @Override  
160 - public int send60Dispatch(Long id, String sender) {  
161 - ScheduleRealInfo sch = ScheduleBuffer.findOne(id);  
162 - // 车辆已完成班次  
163 - int finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());  
164 - return send60Dispatch(sch, finish, sender);  
165 - }  
166 -  
167 - @Override  
168 - public int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender) {  
169 - logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown);  
170 -  
171 - String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运");  
172 - D60 directive = /*DirectiveDataFactory.createDirective60(nbbm, text, (short) 0x03, upDown, state)*/null;  
173 -  
174 - if (null == directive)  
175 - return -1;  
176 - if(null != sender)  
177 - directive.setSender(sender);  
178 - else  
179 - directive.setSender("系统");  
180 - // 发送指令  
181 - int code = HttpUtils.postJson(JSON.toJSONString(directive));  
182 - // 添加到缓存,等待入库  
183 - directive.setHttpCode(code);  
184 - if (null != sch)  
185 - directive.setSch(sch);  
186 - //DirectiveBuffer.put(directive);  
187 -  
188 - if (code != 0) {  
189 - directive.setErrorText("网关通讯失败, code: " + code);  
190 - //DirectiveBuffer.transientList.add(directive);  
191 - }  
192 - return code;  
193 - }  
194 -  
195 - /**  
196 - * 线路切换  
197 - */  
198 - @Override  
199 - public int lineChange(String nbbm, Integer lineCode, String sender) {  
200 - Long t = System.currentTimeMillis();  
201 - /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);  
202 -  
203 - Directive64 change = new Directive64();  
204 - LineChangeData data = new LineChangeData();  
205 - data.setCityCode(cityCode);  
206 - data.setDeviceId(deviceId);  
207 - data.setLineId("00" + String.valueOf(lineCode));  
208 -  
209 - change.setDeviceId(deviceId);  
210 - change.setOperCode((short) 0X64);  
211 - change.setTimestamp(t);  
212 - change.setData(data);*/  
213 - D64 d64 = /*DirectiveDataFactory.createDirective64(nbbm, lineCode, t)*/null;  
214 -  
215 - if(null != sender)  
216 - d64.setSender(sender);  
217 - else  
218 - d64.setSender("系统");  
219 -  
220 - String deviceId = d64.getDeviceId();  
221 - int code = HttpUtils.postJson(JSON.toJSONString(d64));  
222 - // 入库  
223 - d64.setHttpCode(code);  
224 - //DirectiveBuffer.changeMap.put(deviceId + '_' + t, d64);  
225 -  
226 - // 通知设备刷新线路文件,忽略结果  
227 - if (code == 0)  
228 - HttpUtils.postJson(DirectiveDataFactory.createDeviceRefreshData(deviceId, lineCode));  
229 - else  
230 - d64.setErrorText("网关通讯失败, code: " + code);  
231 -  
232 - d64Repository.save(d64);  
233 - return code;  
234 - }  
235 -  
236 - public D60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) {  
237 -  
238 - String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);  
239 - if (null == deviceId) {  
240 - logger.error("没有设备号对照的车辆:" + nbbm);  
241 - return null;  
242 - }  
243 - // 上下行和营运状态  
244 - Integer upDown = null, state = null;  
245 - if (null == sch) {  
246 - GpsRealData gpsData = gpsRealDataBuffer.findOneByDeviceId(deviceId);  
247 - if (null == gpsData) {  
248 - logger.error("没有找到gps对照,无法确认营运状态和上下行:" + nbbm);  
249 - return null;  
250 - }  
251 - upDown = gpsData.getUpDown();  
252 - state = gpsData.getState();  
253 - } else {  
254 - upDown = Integer.parseInt(sch.getXlDir());  
255 - state = 0;  
256 - }  
257 -  
258 - return /*DirectiveDataFactory.createDirective60(nbbm, text, dispatchInstruct, upDown, state)*/null;  
259 - }  
260 -  
261 -/* public Directive60 createDirective60(String nbbm, String text, Short dispatchInstruct, int upDown, int state) {  
262 - Long timestamp = System.currentTimeMillis();  
263 -  
264 - Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));  
265 - String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);  
266 -  
267 - int msgId = MsgIdGenerator.getMsgId();  
268 -  
269 - Directive60 directive = new Directive60();  
270 - DirectiveData data = new DirectiveData();  
271 - // 一级协议  
272 - directive.setOperCode((short) 0x60);  
273 - // 设备号  
274 - directive.setDeviceId(deviceId);  
275 - // 时间戳  
276 - directive.setTimestamp(timestamp);  
277 - directive.setMsgId(msgId);  
278 - // 构造数据  
279 - data.setDeviceId(deviceId);  
280 - data.setDispatchInstruct(dispatchInstruct);  
281 - data.setTimestamp(timestamp);  
282 - data.setCompanyCode(company);  
283 - data.setMsgId(msgId);  
284 - directive.setData(data);  
285 - long serviceState;  
286 - try {  
287 - serviceState = Consts.SERVICE_STATE[upDown][state];  
288 - } catch (IndexOutOfBoundsException e) {  
289 - // 未知营运状态的直接默认为上行非营运  
290 - serviceState = Consts.SERVICE_STATE[0][1];  
291 - }  
292 - data.setServiceState(serviceState);  
293 - data.setTxtContent(text);  
294 -  
295 - return directive;  
296 - }*/  
297 -  
298 - @Override  
299 - public int upDownChange(String nbbm, Integer upDown, String sender) {  
300 - return send60Operation(nbbm, 0, upDown, null, sender);  
301 - }  
302 -  
303 - /**  
304 - *  
305 - * @Title: createDeviceRefreshData @Description:  
306 - * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws  
307 - */  
308 -/* public String createDeviceRefreshData(String deviceId, Integer lineId) {  
309 - Long t = System.currentTimeMillis();  
310 - Map<String, Object> param = new HashMap<String, Object>();  
311 - param.put("deviceId", deviceId);  
312 - param.put("timestamp", t);  
313 - param.put("operCode", 0Xc0);  
314 -  
315 - Map<String, Object> data = new HashMap<String, Object>();  
316 - data.put("operCode2", 0xa1);  
317 - data.put("cityCode", cityCode);  
318 - data.put("deviceId", deviceId);  
319 - data.put("timestamp", t);  
320 - data.put("centerId", 1);  
321 - data.put("lineId", lineId);  
322 - data.put("lineVersion", 0);  
323 - data.put("carparkDataVersion", 0);  
324 - param.put("data", data);  
325 -  
326 - return JSON.toJSONString(param);  
327 - }*/  
328 -  
329 - @Override  
330 - public Map<String, List<D80>> findNoCofm80(String lineCodes) {  
331 - List<String> lineList = Splitter.on(",").trimResults().splitToList(lineCodes);  
332 -  
333 - Map<String, List<D80>> rs = new HashMap<>();  
334 - for (String code : lineList) {  
335 - rs.put(code, /*DirectiveBuffer.findNoCofm80(Integer.parseInt(code))*/null);  
336 - }  
337 -  
338 - return rs;  
339 - }  
340 -  
341 - @Override  
342 - public Map<String, Object> reply80(int id, int reply) {  
343 - Map<String, Object> rs = new HashMap<>();  
344 -  
345 - D80 d80 = /*DirectiveBuffer.findById80(id)*/null;  
346 - if (null == d80) {  
347 - rs.put("status", ResponseCode.ERROR);  
348 - rs.put("msg", "服务器没有找到对应数据!");  
349 - } else if (d80.isConfirm()) {  
350 - rs.put("status", ResponseCode.ERROR);  
351 - rs.put("msg", "该数据已经被处理了!");  
352 - } else {  
353 - SysUser user = SecurityUtils.getCurrentUser();  
354 -  
355 - d80.setConfirm(true);  
356 - d80.setHandleUser(user.getUserName());  
357 - d80.setConfirmRs(reply);  
358 - d80.setHandleTime(new Date());  
359 - // 封装C0数据包并回复设备  
360 - DC0 c0 = new DC0();  
361 - c0.setDeviceId(d80.getDeviceId());  
362 - c0.setTimestamp(d80.getTimestamp());  
363 - c0.setOperCode((short) 0xC0);  
364 -  
365 - DC0Data data = new DC0Data();  
366 - data.setOperCode2((short) 0x86);  
367 - data.setRequestAck((short) (reply == 0 ? 0x06 : 0x15));  
368 -  
369 - c0.setData(data);  
370 -  
371 - d80.setC0(c0);  
372 - // 入库  
373 - d80Repository.save(d80);  
374 -  
375 - int code = HttpUtils.postJson(JSON.toJSONString(c0));  
376 -  
377 - rs.put("status", ResponseCode.SUCCESS);  
378 - if (code != 0)  
379 - rs.put("msg", "发送C0响应指令到车载设备失败,但该操作已经被系统记录!");  
380 -  
381 - // 通知页面  
382 - Map<String, Object> sockMap = new HashMap<>();  
383 - sockMap.put("fn", "d80Confirm");  
384 - sockMap.put("id", d80.getId());  
385 - socketHandler.sendMessageToLine(d80.getData().getLineId(), JSON.toJSONString(sockMap));  
386 - }  
387 -  
388 - return rs;  
389 - }  
390 -  
391 - @Override  
392 - public Map<String, Object> findDirective(String nbbm, int dType, int page, int size) {  
393 - Map<String, Object> rsMap = new HashMap<>();  
394 - List<Directive> list = null;  
395 -  
396 - switch (dType) {  
397 - case -1:  
398 - //所有指令  
399 - list = DirectiveBuffer.findAll();  
400 - break;  
401 - case 0:  
402 - //调度指令  
403 - list = DirectiveBuffer.findDispatch();  
404 - break;  
405 - case 1:  
406 - //运营指令  
407 - list = DirectiveBuffer.findByDispatchInstruct((short)0x03);  
408 - break;  
409 - case 2:  
410 - //线路切换指令  
411 - list = DirectiveBuffer.findLineChange();  
412 - break;  
413 - case 3:  
414 - //消息短语  
415 - list = DirectiveBuffer.findByDispatchInstruct((short)0x00);  
416 - break;  
417 - }  
418 -  
419 - // 时间倒序  
420 - Collections.sort(list, new DirectiveBuffer.DComparator());  
421 - if(StringUtils.isNotBlank(nbbm)){  
422 - String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);  
423 - //按车辆过滤  
424 - List<Directive> subList = new ArrayList<>();  
425 - for(Directive d : list){  
426 - if(d.getDeviceId().equals(deviceId)){  
427 - subList.add(d);  
428 - }  
429 - }  
430 - list = subList;  
431 - }  
432 -  
433 - int count = list.size();  
434 - // 分页  
435 - int s = page * size, e = s + size;  
436 -  
437 - if (e > count)  
438 - e = count;  
439 -  
440 - List<Directive> rs = list.subList(s, e);  
441 -  
442 - // 时间格式化,车辆自编号转换  
443 - for (Directive d : rs) {  
444 - if (d.getTimeHHmm() == null)  
445 - d.setTimeHHmm(sdfHHmm2.format(new Date(d.getTimestamp())));  
446 - if (d.getNbbm() == null)  
447 - d.setNbbm(CommonMapped.vehicDeviceBiMap.get(d.getDeviceId()));  
448 - }  
449 -  
450 - rsMap.put("list", rs);  
451 - rsMap.put("totalPages", count % size == 0 ? count / size : count / size + 1);  
452 - rsMap.put("page", page);  
453 - return rsMap;  
454 - }  
455 -  
456 - @Override  
457 - public Page<D80> findAll80(Map<String, Object> map, PageRequest pageRequest) {  
458 - //默认只查看当天的  
459 - map.put("timestamp_gt", DateUtils.getTimestamp());  
460 -  
461 - Object nbbm = map.get("nbbm");  
462 - if(null != nbbm && StringUtils.isNotBlank(nbbm.toString())){  
463 - map.put("deviceId_eq", CommonMapped.vehicDeviceBiMap.inverse().get(nbbm.toString()));  
464 - }  
465 -  
466 - Page<D80> pageData = d80Repository.findAll(new CustomerSpecs<D80>(map), pageRequest);  
467 - //格式化时间和转换车辆自编号  
468 - List<D80> list = pageData.getContent();  
469 - for(D80 d80 : list){  
470 - d80.setTimeStr(sdfHHmm2.format(new Date(d80.getTimestamp())));  
471 - d80.getData().setNbbm(CommonMapped.vehicDeviceBiMap.get(d80.getDeviceId()));  
472 - }  
473 - return pageData;  
474 - }  
475 -} 1 +//package com.bsth.service.directive;
  2 +//
  3 +//import java.text.SimpleDateFormat;
  4 +//import java.util.ArrayList;
  5 +//import java.util.Collections;
  6 +//import java.util.Date;
  7 +//import java.util.HashMap;
  8 +//import java.util.List;
  9 +//import java.util.Map;
  10 +//
  11 +//import org.apache.commons.lang3.StringUtils;
  12 +//import org.slf4j.Logger;
  13 +//import org.slf4j.LoggerFactory;
  14 +//import org.springframework.beans.factory.annotation.Autowired;
  15 +//import org.springframework.data.domain.Page;
  16 +//import org.springframework.data.domain.PageRequest;
  17 +//import org.springframework.stereotype.Service;
  18 +//
  19 +//import com.alibaba.fastjson.JSON;
  20 +//import com.alibaba.fastjson.JSONObject;
  21 +//import com.bsth.common.ResponseCode;
  22 +//import com.bsth.entity.directive.D60;
  23 +//import com.bsth.entity.directive.D64;
  24 +//import com.bsth.entity.directive.D80;
  25 +//import com.bsth.entity.directive.DC0;
  26 +//import com.bsth.entity.directive.DC0.DC0Data;
  27 +//import com.bsth.entity.realcontrol.ScheduleRealInfo;
  28 +//import com.bsth.entity.search.CustomerSpecs;
  29 +//import com.bsth.entity.sys.SysUser;
  30 +//import com.bsth.repository.directive.D60Repository;
  31 +//import com.bsth.repository.directive.D64Repository;
  32 +//import com.bsth.repository.directive.D80Repository;
  33 +//import com.bsth.security.util.SecurityUtils;
  34 +//import com.bsth.service.impl.BaseServiceImpl;
  35 +//import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
  36 +//import com.bsth.util.DateUtils;
  37 +//import com.bsth.vehicle.common.CommonMapped;
  38 +//import com.bsth.vehicle.directive.buffer.DirectiveBuffer;
  39 +//import com.bsth.vehicle.directive.entity.Directive;
  40 +//import com.bsth.vehicle.directive.util.DirectiveDataFactory;
  41 +//import com.bsth.vehicle.directive.util.HttpUtils;
  42 +//import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer;
  43 +//import com.bsth.vehicle.gpsdata.entity.GpsRealData;
  44 +//import com.bsth.websocket.handler.RealControlSocketHandler;
  45 +//import com.google.common.base.Splitter;
  46 +//
  47 +//@Service
  48 +//public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implements DirectiveService {
  49 +//
  50 +// Logger logger = LoggerFactory.getLogger(this.getClass());
  51 +//
  52 +// @Autowired
  53 +// D60Repository d60Repository;
  54 +//
  55 +// @Autowired
  56 +// GpsRealDataBuffer gpsRealDataBuffer;
  57 +//
  58 +// @Autowired
  59 +// D64Repository d64Repository;
  60 +//
  61 +// @Autowired
  62 +// RealControlSocketHandler socketHandler;
  63 +//
  64 +// @Autowired
  65 +// D80Repository d80Repository;
  66 +//
  67 +// SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH点mm分"), sdfHHmm2 = new SimpleDateFormat("HH:mm");
  68 +//
  69 +// static Long schDiff = 1000 * 60 * 60L;
  70 +//
  71 +// @Override
  72 +// public int send60Phrase(String nbbm, String text, String sender) {
  73 +// D60 directive = null;
  74 +// try {
  75 +// directive = create60Data(nbbm, text, (short) 0x00, null);
  76 +// } catch (Exception e) {
  77 +// logger.error("发送消息短语出现异常", e);
  78 +// return -1;
  79 +// }
  80 +//
  81 +// if (null == directive)
  82 +// return -1;
  83 +//
  84 +// // 发送指令
  85 +// int code = HttpUtils.postJson(JSON.toJSONString(directive));
  86 +// if(null != sender)
  87 +// directive.setSender(sender);
  88 +// directive.setHttpCode(code);
  89 +// // 添加到缓存,等待入库
  90 +// //DirectiveBuffer.put(directive);
  91 +//
  92 +// if (code != 0) {
  93 +// directive.setErrorText("网关通讯失败, code: " + code);
  94 +// //DirectiveBuffer.transientList.add(directive);
  95 +// }
  96 +// return code;
  97 +// }
  98 +//
  99 +// @Override
  100 +// public int send60Dispatch(ScheduleRealInfo sch, int finish, String sender) {
  101 +// D60 directive = null;
  102 +// try {
  103 +// // 如果发车时间距当前时间较远,则不发送
  104 +// /*if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {
  105 +// return -2;
  106 +// }*/
  107 +//
  108 +// String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getDfsjT())) + ",由"
  109 +// + sch.getQdzName() + "发往" + sch.getZdzName();
  110 +//
  111 +// ScheduleRealInfo nextSch = ScheduleBuffer.getNext(sch);
  112 +// //下发0x02指令 调度指令(闹钟有效)
  113 +// /*directive = DirectiveDataFactory.createDirective6002(sch.getClZbh(), text, (short) 0x02
  114 +// , Integer.parseInt(nextSch.getXlDir()), 0, new Date(System.currentTimeMillis() + 1000 * 30));*/
  115 +// } catch (Exception e) {
  116 +// logger.error("生成调度指令时出现异常", e);
  117 +// return -1;
  118 +// }
  119 +//
  120 +// if (null == directive)
  121 +// return -1;
  122 +// if(null != sender)
  123 +// directive.setSender(sender);
  124 +// else
  125 +// directive.setSender("系统");
  126 +//
  127 +// // 发送指令
  128 +// int code = HttpUtils.postJson(JSON.toJSONString(directive));
  129 +//
  130 +// sch.setDirectiveState(60);
  131 +// // 添加到缓存,等待入库
  132 +// directive.setDispatch(true);
  133 +// directive.setSch(sch);
  134 +// directive.setHttpCode(code);
  135 +// //DirectiveBuffer.put(directive);
  136 +//
  137 +// if (code == 0) {
  138 +// // 通知页面,消息已发出
  139 +// sendDirectiveToPage(sch);
  140 +// } else {
  141 +// directive.setErrorText("网关通讯失败, code: " + code);
  142 +// //DirectiveBuffer.transientList.add(directive);
  143 +// }
  144 +// return code;
  145 +// }
  146 +//
  147 +// /**
  148 +// *
  149 +// * @Title: sendDirectiveState @Description: TODO(向页面推送班次指令状态) @throws
  150 +// */
  151 +// @Override
  152 +// public void sendDirectiveToPage(ScheduleRealInfo sch) {
  153 +// JSONObject json = new JSONObject();
  154 +// json.put("fn", "directive");
  155 +// json.put("t", sch);
  156 +// socketHandler.sendMessageToLine(Integer.parseInt(sch.getXlBm()), json.toJSONString());
  157 +// }
  158 +//
  159 +// @Override
  160 +// public int send60Dispatch(Long id, String sender) {
  161 +// ScheduleRealInfo sch = ScheduleBuffer.findOne(id);
  162 +// // 车辆已完成班次
  163 +// int finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
  164 +// return send60Dispatch(sch, finish, sender);
  165 +// }
  166 +//
  167 +// @Override
  168 +// public int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender) {
  169 +// logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown);
  170 +//
  171 +// String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运");
  172 +// D60 directive = /*DirectiveDataFactory.createDirective60(nbbm, text, (short) 0x03, upDown, state)*/null;
  173 +//
  174 +// if (null == directive)
  175 +// return -1;
  176 +// if(null != sender)
  177 +// directive.setSender(sender);
  178 +// else
  179 +// directive.setSender("系统");
  180 +// // 发送指令
  181 +// int code = HttpUtils.postJson(JSON.toJSONString(directive));
  182 +// // 添加到缓存,等待入库
  183 +// directive.setHttpCode(code);
  184 +// if (null != sch)
  185 +// directive.setSch(sch);
  186 +// //DirectiveBuffer.put(directive);
  187 +//
  188 +// if (code != 0) {
  189 +// directive.setErrorText("网关通讯失败, code: " + code);
  190 +// //DirectiveBuffer.transientList.add(directive);
  191 +// }
  192 +// return code;
  193 +// }
  194 +//
  195 +// /**
  196 +// * 线路切换
  197 +// */
  198 +// @Override
  199 +// public int lineChange(String nbbm, Integer lineCode, String sender) {
  200 +// Long t = System.currentTimeMillis();
  201 +// /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  202 +//
  203 +// Directive64 change = new Directive64();
  204 +// LineChangeData data = new LineChangeData();
  205 +// data.setCityCode(cityCode);
  206 +// data.setDeviceId(deviceId);
  207 +// data.setLineId("00" + String.valueOf(lineCode));
  208 +//
  209 +// change.setDeviceId(deviceId);
  210 +// change.setOperCode((short) 0X64);
  211 +// change.setTimestamp(t);
  212 +// change.setData(data);*/
  213 +// D64 d64 = /*DirectiveDataFactory.createDirective64(nbbm, lineCode, t)*/null;
  214 +//
  215 +// if(null != sender)
  216 +// d64.setSender(sender);
  217 +// else
  218 +// d64.setSender("系统");
  219 +//
  220 +// String deviceId = d64.getDeviceId();
  221 +// int code = HttpUtils.postJson(JSON.toJSONString(d64));
  222 +// // 入库
  223 +// d64.setHttpCode(code);
  224 +// //DirectiveBuffer.changeMap.put(deviceId + '_' + t, d64);
  225 +//
  226 +// // 通知设备刷新线路文件,忽略结果
  227 +// if (code == 0)
  228 +// HttpUtils.postJson(DirectiveDataFactory.createDeviceRefreshData(deviceId, lineCode));
  229 +// else
  230 +// d64.setErrorText("网关通讯失败, code: " + code);
  231 +//
  232 +// d64Repository.save(d64);
  233 +// return code;
  234 +// }
  235 +//
  236 +// public D60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) {
  237 +//
  238 +// String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  239 +// if (null == deviceId) {
  240 +// logger.error("没有设备号对照的车辆:" + nbbm);
  241 +// return null;
  242 +// }
  243 +// // 上下行和营运状态
  244 +// Integer upDown = null, state = null;
  245 +// if (null == sch) {
  246 +// GpsRealData gpsData = gpsRealDataBuffer.findOneByDeviceId(deviceId);
  247 +// if (null == gpsData) {
  248 +// logger.error("没有找到gps对照,无法确认营运状态和上下行:" + nbbm);
  249 +// return null;
  250 +// }
  251 +// upDown = gpsData.getUpDown();
  252 +// state = gpsData.getState();
  253 +// } else {
  254 +// upDown = Integer.parseInt(sch.getXlDir());
  255 +// state = 0;
  256 +// }
  257 +//
  258 +// return /*DirectiveDataFactory.createDirective60(nbbm, text, dispatchInstruct, upDown, state)*/null;
  259 +// }
  260 +//
  261 +///* public Directive60 createDirective60(String nbbm, String text, Short dispatchInstruct, int upDown, int state) {
  262 +// Long timestamp = System.currentTimeMillis();
  263 +//
  264 +// Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));
  265 +// String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  266 +//
  267 +// int msgId = MsgIdGenerator.getMsgId();
  268 +//
  269 +// Directive60 directive = new Directive60();
  270 +// DirectiveData data = new DirectiveData();
  271 +// // 一级协议
  272 +// directive.setOperCode((short) 0x60);
  273 +// // 设备号
  274 +// directive.setDeviceId(deviceId);
  275 +// // 时间戳
  276 +// directive.setTimestamp(timestamp);
  277 +// directive.setMsgId(msgId);
  278 +// // 构造数据
  279 +// data.setDeviceId(deviceId);
  280 +// data.setDispatchInstruct(dispatchInstruct);
  281 +// data.setTimestamp(timestamp);
  282 +// data.setCompanyCode(company);
  283 +// data.setMsgId(msgId);
  284 +// directive.setData(data);
  285 +// long serviceState;
  286 +// try {
  287 +// serviceState = Consts.SERVICE_STATE[upDown][state];
  288 +// } catch (IndexOutOfBoundsException e) {
  289 +// // 未知营运状态的直接默认为上行非营运
  290 +// serviceState = Consts.SERVICE_STATE[0][1];
  291 +// }
  292 +// data.setServiceState(serviceState);
  293 +// data.setTxtContent(text);
  294 +//
  295 +// return directive;
  296 +// }*/
  297 +//
  298 +// @Override
  299 +// public int upDownChange(String nbbm, Integer upDown, String sender) {
  300 +// return send60Operation(nbbm, 0, upDown, null, sender);
  301 +// }
  302 +//
  303 +// /**
  304 +// *
  305 +// * @Title: createDeviceRefreshData @Description:
  306 +// * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws
  307 +// */
  308 +///* public String createDeviceRefreshData(String deviceId, Integer lineId) {
  309 +// Long t = System.currentTimeMillis();
  310 +// Map<String, Object> param = new HashMap<String, Object>();
  311 +// param.put("deviceId", deviceId);
  312 +// param.put("timestamp", t);
  313 +// param.put("operCode", 0Xc0);
  314 +//
  315 +// Map<String, Object> data = new HashMap<String, Object>();
  316 +// data.put("operCode2", 0xa1);
  317 +// data.put("cityCode", cityCode);
  318 +// data.put("deviceId", deviceId);
  319 +// data.put("timestamp", t);
  320 +// data.put("centerId", 1);
  321 +// data.put("lineId", lineId);
  322 +// data.put("lineVersion", 0);
  323 +// data.put("carparkDataVersion", 0);
  324 +// param.put("data", data);
  325 +//
  326 +// return JSON.toJSONString(param);
  327 +// }*/
  328 +//
  329 +// @Override
  330 +// public Map<String, List<D80>> findNoCofm80(String lineCodes) {
  331 +// List<String> lineList = Splitter.on(",").trimResults().splitToList(lineCodes);
  332 +//
  333 +// Map<String, List<D80>> rs = new HashMap<>();
  334 +// for (String code : lineList) {
  335 +// rs.put(code, /*DirectiveBuffer.findNoCofm80(Integer.parseInt(code))*/null);
  336 +// }
  337 +//
  338 +// return rs;
  339 +// }
  340 +//
  341 +// @Override
  342 +// public Map<String, Object> reply80(int id, int reply) {
  343 +// Map<String, Object> rs = new HashMap<>();
  344 +//
  345 +// D80 d80 = /*DirectiveBuffer.findById80(id)*/null;
  346 +// if (null == d80) {
  347 +// rs.put("status", ResponseCode.ERROR);
  348 +// rs.put("msg", "服务器没有找到对应数据!");
  349 +// } else if (d80.isConfirm()) {
  350 +// rs.put("status", ResponseCode.ERROR);
  351 +// rs.put("msg", "该数据已经被处理了!");
  352 +// } else {
  353 +// SysUser user = SecurityUtils.getCurrentUser();
  354 +//
  355 +// d80.setConfirm(true);
  356 +// d80.setHandleUser(user.getUserName());
  357 +// d80.setConfirmRs(reply);
  358 +// d80.setHandleTime(new Date());
  359 +// // 封装C0数据包并回复设备
  360 +// DC0 c0 = new DC0();
  361 +// c0.setDeviceId(d80.getDeviceId());
  362 +// c0.setTimestamp(d80.getTimestamp());
  363 +// c0.setOperCode((short) 0xC0);
  364 +//
  365 +// DC0Data data = new DC0Data();
  366 +// data.setOperCode2((short) 0x86);
  367 +// data.setRequestAck((short) (reply == 0 ? 0x06 : 0x15));
  368 +//
  369 +// c0.setData(data);
  370 +//
  371 +// d80.setC0(c0);
  372 +// // 入库
  373 +// d80Repository.save(d80);
  374 +//
  375 +// int code = HttpUtils.postJson(JSON.toJSONString(c0));
  376 +//
  377 +// rs.put("status", ResponseCode.SUCCESS);
  378 +// if (code != 0)
  379 +// rs.put("msg", "发送C0响应指令到车载设备失败,但该操作已经被系统记录!");
  380 +//
  381 +// // 通知页面
  382 +// Map<String, Object> sockMap = new HashMap<>();
  383 +// sockMap.put("fn", "d80Confirm");
  384 +// sockMap.put("id", d80.getId());
  385 +// socketHandler.sendMessageToLine(d80.getData().getLineId(), JSON.toJSONString(sockMap));
  386 +// }
  387 +//
  388 +// return rs;
  389 +// }
  390 +//
  391 +// @Override
  392 +// public Map<String, Object> findDirective(String nbbm, int dType, int page, int size) {
  393 +// Map<String, Object> rsMap = new HashMap<>();
  394 +// List<Directive> list = null;
  395 +//
  396 +// switch (dType) {
  397 +// case -1:
  398 +// //所有指令
  399 +// list = DirectiveBuffer.findAll();
  400 +// break;
  401 +// case 0:
  402 +// //调度指令
  403 +// list = DirectiveBuffer.findDispatch();
  404 +// break;
  405 +// case 1:
  406 +// //运营指令
  407 +// list = DirectiveBuffer.findByDispatchInstruct((short)0x03);
  408 +// break;
  409 +// case 2:
  410 +// //线路切换指令
  411 +// list = DirectiveBuffer.findLineChange();
  412 +// break;
  413 +// case 3:
  414 +// //消息短语
  415 +// list = DirectiveBuffer.findByDispatchInstruct((short)0x00);
  416 +// break;
  417 +// }
  418 +//
  419 +// // 时间倒序
  420 +// Collections.sort(list, new DirectiveBuffer.DComparator());
  421 +// if(StringUtils.isNotBlank(nbbm)){
  422 +// String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  423 +// //按车辆过滤
  424 +// List<Directive> subList = new ArrayList<>();
  425 +// for(Directive d : list){
  426 +// if(d.getDeviceId().equals(deviceId)){
  427 +// subList.add(d);
  428 +// }
  429 +// }
  430 +// list = subList;
  431 +// }
  432 +//
  433 +// int count = list.size();
  434 +// // 分页
  435 +// int s = page * size, e = s + size;
  436 +//
  437 +// if (e > count)
  438 +// e = count;
  439 +//
  440 +// List<Directive> rs = list.subList(s, e);
  441 +//
  442 +// // 时间格式化,车辆自编号转换
  443 +// for (Directive d : rs) {
  444 +// if (d.getTimeHHmm() == null)
  445 +// d.setTimeHHmm(sdfHHmm2.format(new Date(d.getTimestamp())));
  446 +// if (d.getNbbm() == null)
  447 +// d.setNbbm(CommonMapped.vehicDeviceBiMap.get(d.getDeviceId()));
  448 +// }
  449 +//
  450 +// rsMap.put("list", rs);
  451 +// rsMap.put("totalPages", count % size == 0 ? count / size : count / size + 1);
  452 +// rsMap.put("page", page);
  453 +// return rsMap;
  454 +// }
  455 +//
  456 +// @Override
  457 +// public Page<D80> findAll80(Map<String, Object> map, PageRequest pageRequest) {
  458 +// //默认只查看当天的
  459 +// map.put("timestamp_gt", DateUtils.getTimestamp());
  460 +//
  461 +// Object nbbm = map.get("nbbm");
  462 +// if(null != nbbm && StringUtils.isNotBlank(nbbm.toString())){
  463 +// map.put("deviceId_eq", CommonMapped.vehicDeviceBiMap.inverse().get(nbbm.toString()));
  464 +// }
  465 +//
  466 +// Page<D80> pageData = d80Repository.findAll(new CustomerSpecs<D80>(map), pageRequest);
  467 +// //格式化时间和转换车辆自编号
  468 +// List<D80> list = pageData.getContent();
  469 +// for(D80 d80 : list){
  470 +// d80.setTimeStr(sdfHHmm2.format(new Date(d80.getTimestamp())));
  471 +// d80.getData().setNbbm(CommonMapped.vehicDeviceBiMap.get(d80.getDeviceId()));
  472 +// }
  473 +// return pageData;
  474 +// }
  475 +//}