Commit 6013853a45fb42a79a4d829ff4d7e889356b3f76

Authored by 徐烜
2 parents 96d5e769 11f520fd

PSM-12

README.md
1 -公交调度系统BS版 0.1  
2 -======  
3 -----------  
4 -## 目录  
5 ----------  
6 - * [字典表](#字典表)  
7 - * [动态jpa查询实现](#动态jpa查询实现)  
8 - * [车载 gps 相关数据](#gps)  
9 - * [实时gps数据接口 http](#实时gps接口)  
10 - * [进出站数据表结构](#进站数据)  
11 - * [异常警报表结构](#异常警报)  
12 - * [大间隔](#大间隔)  
13 - * [超速](#超速)  
14 - * [越界](#越界)  
15 - * [越站](#越站)  
16 - * [聚集](#聚集)  
17 - * [掉线](#掉线)  
18 - * [调度消息下发接口HTTP](#调度消息下发接口)  
19 - * [调度消息上传接口HTTP](#调度消息上传接口)  
20 -  
21 -----------  
22 -  
23 -## 字典表  
24 -----------  
25 -字典操作全部由前端负责,主要有2种。  
26 -  
27 -1、转换字典代码。  
28 - 当pjax的`pjax:success`事件被触发(片段加载完成)  
29 - 扫描容器内所有有 `$(".nt-dictionary")` 元素进行字典转换  
30 -``` html  
31 ---dom标签为span div p h1 h2 h3 h4 h5 h6 等等文本元素时,如下写法,text为要转换的代码  
32 -<span class="nt-dictionary" data-group="ScheduleType">out</span>  
33 ---to  
34 -<span>出场</span>  
35 -  
36 -<!- dom标签为input时,如下 data-code为要转换的代码 -->  
37 -<input class="nt-dictionary" data-group="ScheduleType" data-code="out">  
38 ---to  
39 -<input value="出场">  
40 -  
41 -<!- dom标签为select时 如下 data-code为要选中的项 -->  
42 -<select class="nt-dictionary" data-group="ScheduleType" data-code="out"></select>  
43 ---to  
44 -<select>  
45 - <option value="normal">正常班次</option>  
46 - <option value="out" selected>出场</option>  
47 - <option value="in">进场</option>  
48 - <option value="oil">加油</option>  
49 - <option value="temp">临加</option>  
50 - <option value="region">区间</option>  
51 - <option value="venting">放空</option>  
52 - <option value="major">放大站</option>  
53 -</select>  
54 -```  
55 -*原标签的class 除nt-dictionary 外,其余均会被保留*  
56 -  
57 -2、dictionary.js提供如下方法自行使用  
58 -| 方法名 | 参数|返回|  
59 -| ---- | ---- | ---- | ---- |  
60 -| groups (获取所有字典组) | 无| | {LineTrend: 线路走向, ScheduleType: 班次类型} |  
61 -| getByGroup (获取字典组下的字典)| (group) |{0: 上行, 1: 下行}|  
62 -| transformCode (转换字典代码)| (group, code) | 上行 |  
63 -  
64 -## 动态jpa查询实现  
65 -----------  
66 -*参考调度系统枚举com.bsth.entity.search.SearchOperator*  
67 -  
68 -  
69 -## gps  
70 -----------  
71 -### 实时gps接口  
72 -  
73 -所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)  
74 -根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)  
75 -  
76 -<span style="color: red">Response</span>:  
77 -```json  
78 -{  
79 - "data":[  
80 - {  
81 - "companyCode":5,  
82 - "lineId":10329,  
83 - "deviceId":"05B01901",  
84 - "carparkNo":"00000000",  
85 - "stopNo":"7C890002",  
86 - "lon":121.549866,  
87 - "lat":31.238798,  
88 - "timestamp":1397104499000,  
89 - "speed":42.0,  
90 - "direction":245.9,  
91 - "state":0,  
92 - "upDown":0  
93 - }]  
94 -}  
95 -```  
96 -  
97 -| -- | --|--|  
98 -| ---- | ---- | ---- |  
99 -| companyCode | int | 公司代码 |  
100 -| lineId | int | 线路编码 |  
101 -| deviceId | String | 设备编号 |  
102 -| carparkNo | String | 停车场编码 |  
103 -| stopNo | String | 站点编码 |  
104 -| lon | float | 经度 |  
105 -| lat | float | 纬度 |  
106 -| timestamp | long | 时间戳 |  
107 -| speed | float | 速度|  
108 -| direction | float | 方向(角度) |  
109 -| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |  
110 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|  
111 -  
112 -  
113 -### 进站数据  
114 -----------  
115 -表名:  
116 -  
117 -| .. | .. | .. |  
118 -| ---- | ---- | ---- |  
119 -| id | int | 主键 |  
120 -| deviceId | String | 设备号 |  
121 -| lineId | int | 线路编码 |  
122 -| stopNo | long | 站点编码 |  
123 -| timestamp | long | 时间戳 |  
124 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
125 -| createDate | Date | 创建时间 |  
126 -  
127 -  
128 -### 异常警报  
129 -----------  
130 -  
131 -### 大间隔  
132 -----------  
133 -表名:  
134 -  
135 -| .. | .. | .. |  
136 -| ---- | ---- | ---- |  
137 -| id | int | 主键 |  
138 -| line | int | 线路编码 |  
139 -| station | String | 站点编码 |  
140 -| cVehicle | String | 当前车辆编码 |  
141 -| lastVehicle | String | 上一个车辆编码 |  
142 -| interval | long | 间隔时间(秒) |  
143 -| timestamp | long | 时间戳 |  
144 -| createDate | Date | 创建时间 |  
145 -  
146 -### 超速  
147 -----------  
148 -表名:  
149 -  
150 -| .. | .. | .. |  
151 -| ---- | ---- | ---- |  
152 -| id | int | 主键 |  
153 -| vehicle | String | 车辆编码 |  
154 -| line | int | 线路编码 |  
155 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
156 -| lon | float | 经度 |  
157 -| lat | float | 纬度|  
158 -| speed | float | 速度 |  
159 -| timestamp | long | 时间戳 |  
160 -| createDate | Date | 时间 |  
161 -  
162 -### 越界  
163 -----------  
164 -表名:  
165 -  
166 -| .. | .. | .. |  
167 -| ---- | ---- | ---- |  
168 -| id | int | 主键 |  
169 -| vehicle | String | 车辆编码 |  
170 -| line | int | 线路编码 |  
171 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
172 -| lon | float | 经度 |  
173 -| lat | float | 纬度|  
174 -| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|  
175 -| timestamp | long | 时间戳 |  
176 -| createDate | Date | 时间 |  
177 -  
178 -  
179 -### 越站  
180 -----------  
181 -表名:  
182 -  
183 -| .. | .. | .. |  
184 -| ---- | ---- | ---- |  
185 -| id | int | 主键 |  
186 -| line | int | 线路编码 |  
187 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
188 -| station | String | 站点编码 |  
189 -| vehicle | String | 车辆编码 |  
190 -| inData | Date | 进站时间 |  
191 -| outDate | Date | 出站时间 |  
192 -  
193 -  
194 -### 聚集  
195 -----------  
196 -表名:  
197 -  
198 -| .. | .. | .. |  
199 -| ---- | ---- | ---- |  
200 -| id | int | 主键 |  
201 -| line | int | 线路编码 |  
202 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
203 -| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |  
204 -| vehicles | String | 车辆编码(多个用 , 号分隔) |  
205 -| timestamp | long | 时间戳 |  
206 -| createDate | Date | 时间 |  
207 -  
208 -  
209 -### 掉线  
210 -----------  
211 -表名:  
212 -  
213 -| .. | .. | .. |  
214 -| ---- | ---- | ---- |  
215 -| id | int | 主键 |  
216 -| line | int | 线路编码 |  
217 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
218 -| vehicle | String | 车辆编码 |  
219 -| lon | float | 经度 |  
220 -| lat | float | 纬度|  
221 -| timestamp | long | 时间戳 |  
222 -| createDate | Date | 时间 |  
223 -  
224 -  
225 -### 调度消息下发接口  
226 -----------  
227 -[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/)  
228 -  
229 -<span style="color: red">Request</span>:  
230 -```json  
231 -{  
232 - "deviceId":12345,  
233 - "timestamp":44324,  
234 - "operCode":0x60,  
235 - "data":{  
236 - "companyCode":22,  
237 - "deviceId":"029L2222",  
238 - "timestamp":134326,  
239 - "instructType":00,  
240 - "dispatchInstruct":0x00,  
241 - "msgId":12345,  
242 - "alarmTime":201606012000,  
243 - "serviceState":00000000,  
244 - "txtContent":"你好"  
245 - }  
246 -}  
247 -```  
248 -| .. | .. | .. |  
249 -| ---- | ---- | ---- |  
250 -| deviceId | string | 设备编号 |  
251 -| timestamp | long | 时间戳(ms) |  
252 -| operCode | short | 一级协议 |  
253 -| data.companyCode | short | 公司代码 |  
254 -| data.deviceId | string | 设备编号 |  
255 -| data.timestamp | long | 时间戳 |  
256 -| data.instructType | short | 保留 默认0 |  
257 -| data.dispatchInstruct | short | 调度指令 调度指令。0X00表示信息短语,0X01表示取消上次指令+调度指令(闹钟有效),0x02表示为调度指令(闹钟有效); 0x03表示运营状态指令(闹钟无效);0x04表示其他指令。|  
258 -| data.msgId | long | 同上 |  
259 -| data.alarmTime | long | 闹钟 MMddhhmm|  
260 -| data.serviceState | long | 多状态字节   先由车载发起车辆故障、事故报告、扣证、纠纷、加油等审请,经调度确认后,下发调度指令与运营状态。当调度指令为0X00终端需要提示信息。当调度指令为0x01和0x02,终端需要收到后提示信息。并且必须在闹钟结束后进行终端相关状态更新。在闹钟时间前120秒开始提示。当调度指令为0x03,收到后进行终端相关状态更新,终端不需要提示信息。当调度指令为0x04,暂不需要提示信息。|  
261 -| data.txtContent | string | 下发的消息文本 |  
262 -```json  
263 -{  
264 - "deviceId":12345,  
265 - "timestamp":44324,  
266 - "operCode":0x64,  
267 - "data":{  
268 - "cityCode":22,  
269 - "deviceId":"029L2222",  
270 - "lineId":"134326"  
271 - }  
272 -}  
273 -```  
274 -| .. | .. | .. |  
275 -| ---- | ---- | ---- |  
276 -| deviceId | string | 设备编号 |  
277 -| timestamp | long | 时间戳(ms) |  
278 -| operCode | short | 一级协议 |  
279 -| data.cityCode | short | 城市区号 |  
280 -| data.deviceId | string | 设备编号 |  
281 -| data.lineId | string | 线路编号 6位 不足6位前面补0 如编号890 用000890表示 |  
282 -  
283 -```json  
284 -{  
285 - "deviceId":12345,  
286 - "timestamp":44324,  
287 - "operCode":0xC0,  
288 - "data":{  
289 - "operCode":0x86,  
290 - "requestAck":0x06  
291 - }  
292 -}  
293 -```  
294 -| .. | .. | .. |  
295 -| ---- | ---- | ---- |  
296 -| deviceId | string | 设备编号 |  
297 -| timestamp | long | 时间戳(ms) |  
298 -| operCode | short | 一级协议 |  
299 -| data.operCode | short | 二级协议 |  
300 -| data.requestAck | short | 请求应答字 0x06同意 0x15不同意|  
301 -  
302 -<span style="color: red">Response</span>:  
303 -```json  
304 -{  
305 - "errCode":0  
306 -}  
307 -```  
308 -  
309 -  
310 -### 调度消息上传接口  
311 -----------  
312 -上行POST地址:[http://192.168.168.120:9088/control/upstream](http://192.168.168.120:9088/control/upstream)  
313 -<span style="color: red">Request</span>:  
314 -```json  
315 -{  
316 - "deviceId":12345,  
317 - "timestamp":44324,  
318 - "status":0,  
319 - "operCode":0x80,  
320 - "data":{  
321 - "operCode":0x26,  
322 - "requestCode":22  
323 - }  
324 -}  
325 -```  
326 -| .. | .. | .. |  
327 -| ---- | ---- | ---- |  
328 -| deviceId | string | 设备编号 |  
329 -| timestamp | long | 时间戳(ms) |  
330 -| status | int | 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读 |  
331 -| operCode | short | 一级协议 消息确认将无数据 |  
332 -| data.operCode | short | 二级协议 |  
333 -| data.requestCode | short | 请求代码0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警 |  
334 -<span style="color: red">Response</span>:  
335 -```json  
336 -{  
337 - "errCode":0  
338 -}  
339 -``` 1 +公交调度系统BS版 0.1
  2 +======
  3 +----------
  4 +## 目录
  5 +---------
  6 + * [字典表](#字典表)
  7 + * [动态jpa查询实现](#动态jpa查询实现)
  8 + * [车载 gps 相关数据](#gps)
  9 + * [实时gps数据接口 http](#实时gps接口)
  10 + * [进出站数据表结构](#进站数据)
  11 + * [异常警报表结构](#异常警报)
  12 + * [大间隔](#大间隔)
  13 + * [超速](#超速)
  14 + * [越界](#越界)
  15 + * [越站](#越站)
  16 + * [聚集](#聚集)
  17 + * [掉线](#掉线)
  18 + * [调度消息下发接口HTTP](#调度消息下发接口)
  19 + * [调度消息上传接口HTTP](#调度消息上传接口)
  20 + * [车辆历史GPS数据](#车辆历史GPS)
  21 +
  22 +----------
  23 +
  24 +## 字典表
  25 +----------
  26 +字典操作全部由前端负责,主要有2种。
  27 +
  28 +1、转换字典代码。
  29 + 当pjax的`pjax:success`事件被触发(片段加载完成)
  30 + 扫描容器内所有有 `$(".nt-dictionary")` 元素进行字典转换
  31 +``` html
  32 +--dom标签为span div p h1 h2 h3 h4 h5 h6 等等文本元素时,如下写法,text为要转换的代码
  33 +<span class="nt-dictionary" data-group="ScheduleType">out</span>
  34 +--to
  35 +<span>出场</span>
  36 +
  37 +<!- dom标签为input时,如下 data-code为要转换的代码 -->
  38 +<input class="nt-dictionary" data-group="ScheduleType" data-code="out">
  39 +--to
  40 +<input value="出场">
  41 +
  42 +<!- dom标签为select时 如下 data-code为要选中的项 -->
  43 +<select class="nt-dictionary" data-group="ScheduleType" data-code="out"></select>
  44 +--to
  45 +<select>
  46 + <option value="normal">正常班次</option>
  47 + <option value="out" selected>出场</option>
  48 + <option value="in">进场</option>
  49 + <option value="oil">加油</option>
  50 + <option value="temp">临加</option>
  51 + <option value="region">区间</option>
  52 + <option value="venting">放空</option>
  53 + <option value="major">放大站</option>
  54 +</select>
  55 +```
  56 +*原标签的class 除nt-dictionary 外,其余均会被保留*
  57 +
  58 +2、dictionary.js提供如下方法自行使用
  59 +| 方法名 | 参数|返回|
  60 +| ---- | ---- | ---- | ---- |
  61 +| groups (获取所有字典组) | 无| | {LineTrend: 线路走向, ScheduleType: 班次类型} |
  62 +| getByGroup (获取字典组下的字典)| (group) |{0: 上行, 1: 下行}|
  63 +| transformCode (转换字典代码)| (group, code) | 上行 |
  64 +
  65 +## 动态jpa查询实现
  66 +----------
  67 +*参考调度系统枚举com.bsth.entity.search.SearchOperator*
  68 +
  69 +
  70 +## gps
  71 +----------
  72 +### 实时gps接口
  73 +
  74 +所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)
  75 +根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)
  76 +
  77 +<span style="color: red">Response</span>:
  78 +```json
  79 +{
  80 + "data":[
  81 + {
  82 + "companyCode":5,
  83 + "lineId":10329,
  84 + "deviceId":"05B01901",
  85 + "carparkNo":"00000000",
  86 + "stopNo":"7C890002",
  87 + "lon":121.549866,
  88 + "lat":31.238798,
  89 + "timestamp":1397104499000,
  90 + "speed":42.0,
  91 + "direction":245.9,
  92 + "state":0,
  93 + "upDown":0
  94 + }]
  95 +}
  96 +```
  97 +
  98 +| -- | --|--|
  99 +| ---- | ---- | ---- |
  100 +| companyCode | int | 公司代码 |
  101 +| lineId | int | 线路编码 |
  102 +| deviceId | String | 设备编号 |
  103 +| carparkNo | String | 停车场编码 |
  104 +| stopNo | String | 站点编码 |
  105 +| lon | float | 经度 |
  106 +| lat | float | 纬度 |
  107 +| timestamp | long | 时间戳 |
  108 +| speed | float | 速度|
  109 +| direction | float | 方向(角度) |
  110 +| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |
  111 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|
  112 +
  113 +
  114 +### 进站数据
  115 +----------
  116 +表名:
  117 +
  118 +| .. | .. | .. |
  119 +| ---- | ---- | ---- |
  120 +| id | int | 主键 |
  121 +| deviceId | String | 设备号 |
  122 +| lineId | int | 线路编码 |
  123 +| stopNo | long | 站点编码 |
  124 +| timestamp | long | 时间戳 |
  125 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  126 +| createDate | Date | 创建时间 |
  127 +
  128 +
  129 +### 异常警报
  130 +----------
  131 +
  132 +### 大间隔
  133 +----------
  134 +表名:
  135 +
  136 +| .. | .. | .. |
  137 +| ---- | ---- | ---- |
  138 +| id | int | 主键 |
  139 +| line | int | 线路编码 |
  140 +| station | String | 站点编码 |
  141 +| cVehicle | String | 当前车辆编码 |
  142 +| lastVehicle | String | 上一个车辆编码 |
  143 +| interval | long | 间隔时间(秒) |
  144 +| timestamp | long | 时间戳 |
  145 +| createDate | Date | 创建时间 |
  146 +
  147 +### 超速
  148 +----------
  149 +表名:
  150 +
  151 +| .. | .. | .. |
  152 +| ---- | ---- | ---- |
  153 +| id | int | 主键 |
  154 +| vehicle | String | 车辆编码 |
  155 +| line | int | 线路编码 |
  156 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  157 +| lon | float | 经度 |
  158 +| lat | float | 纬度|
  159 +| speed | float | 速度 |
  160 +| timestamp | long | 时间戳 |
  161 +| createDate | Date | 时间 |
  162 +
  163 +### 越界
  164 +----------
  165 +表名:
  166 +
  167 +| .. | .. | .. |
  168 +| ---- | ---- | ---- |
  169 +| id | int | 主键 |
  170 +| vehicle | String | 车辆编码 |
  171 +| line | int | 线路编码 |
  172 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  173 +| lon | float | 经度 |
  174 +| lat | float | 纬度|
  175 +| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|
  176 +| timestamp | long | 时间戳 |
  177 +| createDate | Date | 时间 |
  178 +
  179 +
  180 +### 越站
  181 +----------
  182 +表名:
  183 +
  184 +| .. | .. | .. |
  185 +| ---- | ---- | ---- |
  186 +| id | int | 主键 |
  187 +| line | int | 线路编码 |
  188 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  189 +| station | String | 站点编码 |
  190 +| vehicle | String | 车辆编码 |
  191 +| inData | Date | 进站时间 |
  192 +| outDate | Date | 出站时间 |
  193 +
  194 +
  195 +### 聚集
  196 +----------
  197 +表名:
  198 +
  199 +| .. | .. | .. |
  200 +| ---- | ---- | ---- |
  201 +| id | int | 主键 |
  202 +| line | int | 线路编码 |
  203 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  204 +| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |
  205 +| vehicles | String | 车辆编码(多个用 , 号分隔) |
  206 +| timestamp | long | 时间戳 |
  207 +| createDate | Date | 时间 |
  208 +
  209 +
  210 +### 掉线
  211 +----------
  212 +表名:
  213 +
  214 +| .. | .. | .. |
  215 +| ---- | ---- | ---- |
  216 +| id | int | 主键 |
  217 +| line | int | 线路编码 |
  218 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  219 +| vehicle | String | 车辆编码 |
  220 +| lon | float | 经度 |
  221 +| lat | float | 纬度|
  222 +| timestamp | long | 时间戳 |
  223 +| createDate | Date | 时间 |
  224 +
  225 +
  226 +### 调度消息下发接口
  227 +----------
  228 +[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/)
  229 +
  230 +<span style="color: red">Request</span>:
  231 +```json
  232 +{
  233 + "deviceId":12345,
  234 + "timestamp":44324,
  235 + "operCode":0x60,
  236 + "data":{
  237 + "companyCode":22,
  238 + "deviceId":"029L2222",
  239 + "timestamp":134326,
  240 + "instructType":00,
  241 + "dispatchInstruct":0x00,
  242 + "msgId":12345,
  243 + "alarmTime":201606012000,
  244 + "serviceState":00000000,
  245 + "txtContent":"你好"
  246 + }
  247 +}
  248 +```
  249 +| .. | .. | .. |
  250 +| ---- | ---- | ---- |
  251 +| deviceId | string | 设备编号 |
  252 +| timestamp | long | 时间戳(ms) |
  253 +| operCode | short | 一级协议 |
  254 +| data.companyCode | short | 公司代码 |
  255 +| data.deviceId | string | 设备编号 |
  256 +| data.timestamp | long | 时间戳 |
  257 +| data.instructType | short | 保留 默认0 |
  258 +| data.dispatchInstruct | short | 调度指令 调度指令。0X00表示信息短语,0X01表示取消上次指令+调度指令(闹钟有效),0x02表示为调度指令(闹钟有效); 0x03表示运营状态指令(闹钟无效);0x04表示其他指令。|
  259 +| data.msgId | long | 同上 |
  260 +| data.alarmTime | long | 闹钟 MMddhhmm|
  261 +| data.serviceState | long | 多状态字节   先由车载发起车辆故障、事故报告、扣证、纠纷、加油等审请,经调度确认后,下发调度指令与运营状态。当调度指令为0X00终端需要提示信息。当调度指令为0x01和0x02,终端需要收到后提示信息。并且必须在闹钟结束后进行终端相关状态更新。在闹钟时间前120秒开始提示。当调度指令为0x03,收到后进行终端相关状态更新,终端不需要提示信息。当调度指令为0x04,暂不需要提示信息。|
  262 +| data.txtContent | string | 下发的消息文本 |
  263 +```json
  264 +{
  265 + "deviceId":12345,
  266 + "timestamp":44324,
  267 + "operCode":0x64,
  268 + "data":{
  269 + "cityCode":22,
  270 + "deviceId":"029L2222",
  271 + "lineId":"134326"
  272 + }
  273 +}
  274 +```
  275 +| .. | .. | .. |
  276 +| ---- | ---- | ---- |
  277 +| deviceId | string | 设备编号 |
  278 +| timestamp | long | 时间戳(ms) |
  279 +| operCode | short | 一级协议 |
  280 +| data.cityCode | short | 城市区号 |
  281 +| data.deviceId | string | 设备编号 |
  282 +| data.lineId | string | 线路编号 6位 不足6位前面补0 如编号890 用000890表示 |
  283 +
  284 +```json
  285 +{
  286 + "deviceId":12345,
  287 + "timestamp":44324,
  288 + "operCode":0xC0,
  289 + "data":{
  290 + "operCode":0x86,
  291 + "requestAck":0x06
  292 + }
  293 +}
  294 +```
  295 +| .. | .. | .. |
  296 +| ---- | ---- | ---- |
  297 +| deviceId | string | 设备编号 |
  298 +| timestamp | long | 时间戳(ms) |
  299 +| operCode | short | 一级协议 |
  300 +| data.operCode | short | 二级协议 |
  301 +| data.requestAck | short | 请求应答字 0x06同意 0x15不同意|
  302 +
  303 +```json
  304 +{
  305 + "deviceId":12345,
  306 + "timestamp":44324,
  307 + "operCode":0xC0,
  308 + "data":{
  309 + "operCode":0xa3,
  310 + "deviceId":12345,
  311 + "ipAddress":222.66.0.204,
  312 + "port":8899,
  313 + "reportMode":0,
  314 + "interval":0,
  315 + "distance":0,
  316 + "speedingThreshold":0,
  317 + "alarmThreshold":0,
  318 + "posIpAddress":0,
  319 + "posPort":0,
  320 + "delay":0,
  321 + "speedThreshold1":0,
  322 + "speedThreshold2":0,
  323 + "contrast":0,
  324 + "brightness":0,
  325 + "saturation":0
  326 + }
  327 +}
  328 +```
  329 +| .. | .. | .. |
  330 +| ---- | ---- | ---- |
  331 +| deviceId | string | 设备编号 |
  332 +| timestamp | long | 时间戳(ms) |
  333 +| operCode | short | 一级协议 |
  334 +| data.operCode | short | 二级协议 |
  335 +| data.deviceId | string | 设备编号|
  336 +| data.ipAddress | string | 网关IP地址|
  337 +| data.port | string | 网关端口|
  338 +| data.reportMode | short | 定时定距上报模式|
  339 +| data.interval | int | 定时上报时间间隔|
  340 +| data.distance | string | 定距上报距离间隔|
  341 +| data.speedingThreshold | short | 非线路状态超速阀门|
  342 +| data.alarmThreshold | short | 预警阀门|
  343 +| data.posIpAddress | string | pos机IP地址|
  344 +| data.posPort | string | pos机端口|
  345 +| data.delay | int | 延迟机关时间|
  346 +| data.deviceId | short | 中门视频切换到码表界面速度阀门 默认45|
  347 +| data.deviceId | short | 码表界面切换到中门视频速度阀门 默认35|
  348 +| data.deviceId | short | 对比度|
  349 +| data.deviceId | short | 亮度|
  350 +| data.deviceId | short | 饱和度|
  351 +
  352 +```json
  353 +{
  354 + "deviceId":12345,
  355 + "timestamp":44324,
  356 + "operCode":0xC0,
  357 + "data":{
  358 + "operCode":0xa4
  359 + }
  360 +}
  361 +```
  362 +| .. | .. | .. |
  363 +| ---- | ---- | ---- |
  364 +| deviceId | string | 设备编号 |
  365 +| timestamp | long | 时间戳(ms) |
  366 +| operCode | short | 一级协议 |
  367 +| data.operCode | short | 二级协议 |
  368 +
  369 +```json
  370 +{
  371 + "deviceId":12345,
  372 + "timestamp":44324,
  373 + "operCode":0xC0,
  374 + "data":{
  375 + "operCode":0xa5
  376 + "programVersion":2
  377 + }
  378 +}
  379 +```
  380 +| .. | .. | .. |
  381 +| ---- | ---- | ---- |
  382 +| deviceId | string | 设备编号 |
  383 +| timestamp | long | 时间戳(ms) |
  384 +| operCode | short | 一级协议 |
  385 +| data.operCode | short | 二级协议 |
  386 +| data.programVersion | short | 程序版本 |
  387 +
  388 +<span style="color: red">Response</span>:
  389 +```json
  390 +{
  391 + "errCode":0
  392 +}
  393 +```
  394 +
  395 +### 调度消息上传接口
  396 +----------
  397 +上行POST地址:[http://192.168.168.120:9088/control/upstream](http://192.168.168.120:9088/control/upstream)
  398 +<span style="color: red">Request</span>:
  399 +```json
  400 +{
  401 + "deviceId":12345,
  402 + "timestamp":44324,
  403 + "status":0,
  404 + "operCode":0x80,
  405 + "data":{
  406 + "operCode":0x26,
  407 + "requestCode":22
  408 + }
  409 +}
  410 +```
  411 +| .. | .. | .. |
  412 +| ---- | ---- | ---- |
  413 +| deviceId | string | 设备编号 |
  414 +| timestamp | long | 时间戳(ms) |
  415 +| status | int | 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读 |
  416 +| operCode | short | 一级协议 消息确认将无数据 |
  417 +| data.operCode | short | 二级协议 |
  418 +| data.requestCode | short | 请求代码0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警 |
  419 +<span style="color: red">Response</span>:
  420 +```json
  421 +{
  422 + "errCode":0
  423 +}
  424 +```
  425 +
  426 +### 车辆历史GPS
  427 +----------
  428 +表名:BSTH_C_GPS_INFO
  429 +
  430 +| .. | .. | .. |
  431 +| ---- | ---- | ---- |
  432 +| cityCode | int | 城市代码 |
  433 +| industryCode | int | 行业代码 |
  434 +| companyCode | int | 企业代码 |
  435 +| lineId | int | 线路编号 |
  436 +| deviceId | string | 设备编号 |
  437 +| driverNo | int | 驾驶员工号 |
  438 +| carparkSerialNo | int | 停车场序列号 |
  439 +| carparkNo | string | 停车场编号 |
  440 +| stopSerialNo | int | 站点序列号 |
  441 +| stopNo | string | 停车场编号 |
  442 +| lon | float | 经度 |
  443 +| lat | float | 维度 |
  444 +| ts | long | 时间戳 |
  445 +| speedSensor | float | 发动机速度 |
  446 +| speedGps | float | gps速度 |
  447 +| direction | float | 角度0-359 |
  448 +| inTemp | int | 车内温度 |
  449 +| serviceState | long | 设备状态字 |
  450 +| daysYear | int | 对应年中的天数 为分区字段 查询一定要用此字段过滤 |
  451 +
src/main/java/com/bsth/repository/schedule/SchedulePlanInfoRepository.java
@@ -25,8 +25,7 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI @@ -25,8 +25,7 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
25 List<SchedulePlanInfo> findByDate(Date date); 25 List<SchedulePlanInfo> findByDate(Date date);
26 26
27 Long deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(Integer xlid, Date startDate, Date endDate); 27 Long deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(Integer xlid, Date startDate, Date endDate);
28 -  
29 - 28 +
30 @Query(value = " select " + 29 @Query(value = " select " +
31 "xl as xlId, " + 30 "xl as xlId, " +
32 "xl_name as xlName, " + 31 "xl_name as xlName, " +
@@ -46,7 +45,7 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI @@ -46,7 +45,7 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
46 "where bc_type = 'out' and " + 45 "where bc_type = 'out' and " +
47 "xl = ?1 and " + 46 "xl = ?1 and " +
48 "schedule_date = ?2 " + 47 "schedule_date = ?2 " +
49 - "group by xl_name, schedule_date, lp_name " + 48 + "group by xl_name, schedule_date, lp, lp_name, cl, cl_zbh " +
50 "order by xl_name, schedule_date, lp ", nativeQuery = true) 49 "order by xl_name, schedule_date, lp ", nativeQuery = true)
51 List<Object[]> findGroupInfo(Integer xlid, Date scheduleDate); 50 List<Object[]> findGroupInfo(Integer xlid, Date scheduleDate);
52 51