Commit 096cd356accd36800dd4c3ece09965190c35944e

Authored by 王通
1 parent b94f2938

1.加入超速报警

src/main/java/com/bsth/message/entity/AlarmDSMVo.java
@@ -103,6 +103,21 @@ public class AlarmDSMVo implements AlarmVo { @@ -103,6 +103,21 @@ public class AlarmDSMVo implements AlarmVo {
103 103
104 private String lineCode; 104 private String lineCode;
105 105
  106 + /**
  107 + * 限速值(0.01km/h)
  108 + */
  109 + private int speedLimit;
  110 +
  111 + /**
  112 + * 超速速度峰值(0.01km/h)
  113 + */
  114 + private int speedPeak;
  115 +
  116 + /**
  117 + * 超速持续时长(S)
  118 + */
  119 + private int duration;
  120 +
106 public String getClientId() { 121 public String getClientId() {
107 return clientId; 122 return clientId;
108 } 123 }
@@ -252,6 +267,34 @@ public class AlarmDSMVo implements AlarmVo { @@ -252,6 +267,34 @@ public class AlarmDSMVo implements AlarmVo {
252 this.lineCode = lineCode; 267 this.lineCode = lineCode;
253 } 268 }
254 269
  270 + public int getSpeedLimit() {
  271 + return speedLimit;
  272 + }
  273 +
  274 + public void setSpeedLimit(int speedLimit) {
  275 + this.speedLimit = speedLimit;
  276 + }
  277 +
  278 + public int getSpeedPeak() {
  279 + return speedPeak;
  280 + }
  281 +
  282 + public void setSpeedPeak(int speedPeak) {
  283 + this.speedPeak = speedPeak;
  284 + }
  285 +
  286 + public int getDuration() {
  287 + return duration;
  288 + }
  289 +
  290 + public void setDuration(int duration) {
  291 + this.duration = duration;
  292 + }
  293 +
  294 + public String getAttach() {
  295 + return String.format("峰值(km/h):%d[%d],持续(s):%d", speedPeak / 100, speedLimit/ 100, duration);
  296 + }
  297 +
255 @Override 298 @Override
256 public int hashCode() { 299 public int hashCode() {
257 return String.format("%s_%d_%d", this.clientId, this.alarmTimeBegin, this.type).hashCode(); 300 return String.format("%s_%d_%d", this.clientId, this.alarmTimeBegin, this.type).hashCode();
src/main/java/com/bsth/message/handler/RabbitMessageHandler.java
@@ -42,6 +42,9 @@ public class RabbitMessageHandler { @@ -42,6 +42,9 @@ public class RabbitMessageHandler {
42 alarmVo = mapper.readValue(message, AlarmDSMVo.class); 42 alarmVo = mapper.readValue(message, AlarmDSMVo.class);
43 } else if ("adas".equals(data.get("alarmType"))) { 43 } else if ("adas".equals(data.get("alarmType"))) {
44 alarmVo = mapper.readValue(message, AlarmADASVo.class); 44 alarmVo = mapper.readValue(message, AlarmADASVo.class);
  45 + } else if ("over-speed".equals(data.get("alarmType"))) {
  46 + alarmVo = mapper.readValue(message, AlarmDSMVo.class);
  47 + ((AlarmDSMVo)alarmVo).setType(17);
45 } 48 }
46 if (alarmVo != null) { 49 if (alarmVo != null) {
47 if (alarmVo.getVehicleCode() == null) { 50 if (alarmVo.getVehicleCode() == null) {
@@ -50,6 +53,7 @@ public class RabbitMessageHandler { @@ -50,6 +53,7 @@ public class RabbitMessageHandler {
50 } 53 }
51 GpsEntity gps = gpsRealData.getByNbbm(alarmVo.getVehicleCode()); 54 GpsEntity gps = gpsRealData.getByNbbm(alarmVo.getVehicleCode());
52 if (gps == null || gps.getLineId() == null) { 55 if (gps == null || gps.getLineId() == null) {
  56 + alarmVo.setLineCode("249231");
53 log.warn("报警未匹配到线路,alarmVo: {}", alarmVo); 57 log.warn("报警未匹配到线路,alarmVo: {}", alarmVo);
54 } else { 58 } else {
55 alarmVo.setLineCode(gps.getLineId()); 59 alarmVo.setLineCode(gps.getLineId());
src/main/resources/application-dev.properties
@@ -18,9 +18,9 @@ spring.datasource.driver-class-name= com.mysql.jdbc.Driver @@ -18,9 +18,9 @@ spring.datasource.driver-class-name= com.mysql.jdbc.Driver
18 ##spring.datasource.url= jdbc:mysql://192.168.168.222/control?useUnicode=true&characterEncoding=utf-8&useSSL=false 18 ##spring.datasource.url= jdbc:mysql://192.168.168.222/control?useUnicode=true&characterEncoding=utf-8&useSSL=false
19 #spring.datasource.username= root 19 #spring.datasource.username= root
20 #spring.datasource.password= 20 #spring.datasource.password=
21 -spring.datasource.url= jdbc:mysql://127.0.0.1/control?useUnicode=true&characterEncoding=utf-8&useSSL=false 21 +spring.datasource.url= jdbc:mysql://192.168.168.152/control_dy?useUnicode=true&characterEncoding=utf-8&useSSL=false
22 spring.datasource.username= root 22 spring.datasource.username= root
23 -spring.datasource.password= root 23 +spring.datasource.password= root2jsp
24 #spring.datasource.url= jdbc:mysql://192.168.168.241/control?useUnicode=true&characterEncoding=utf-8&useSSL=false 24 #spring.datasource.url= jdbc:mysql://192.168.168.241/control?useUnicode=true&characterEncoding=utf-8&useSSL=false
25 #spring.datasource.username= root 25 #spring.datasource.username= root
26 #spring.datasource.password= root2jsp 26 #spring.datasource.password= root2jsp
@@ -46,16 +46,16 @@ spring.kafka.consumer.key-deserializer= org.apache.kafka.common.serialization.St @@ -46,16 +46,16 @@ spring.kafka.consumer.key-deserializer= org.apache.kafka.common.serialization.St
46 spring.kafka.consumer.value-deserializer= org.apache.kafka.common.serialization.StringDeserializer 46 spring.kafka.consumer.value-deserializer= org.apache.kafka.common.serialization.StringDeserializer
47 47
48 rabbit.use= true 48 rabbit.use= true
49 -spring.rabbitmq.host= 10.10.2.21 49 +spring.rabbitmq.host= 192.168.168.167
50 spring.rabbitmq.port= 5672 50 spring.rabbitmq.port= 5672
51 spring.rabbitmq.username= bsth 51 spring.rabbitmq.username= bsth
52 spring.rabbitmq.password= bsth001 52 spring.rabbitmq.password= bsth001
53 spring.rabbitmq.virtual-host= /dsm 53 spring.rabbitmq.virtual-host= /dsm
54 54
55 -minio.url= http://10.10.2.21:9008  
56 -minio.accessKey= umupRhEzO9EiVhLnJ7b9  
57 -minio.secretKey= VzjQUTN6c8p70HyX8AryRrB6ZjEsF2K28ndctHQh  
58 -minio.bucket= dsm 55 +minio.url= http://192.168.168.167:9000
  56 +minio.accessKey= RY5KuSaAPpfZ6D6mIR3x
  57 +minio.secretKey= BexuwVnJ2ikqV03OpO1wSKabU1x9gGtEf6NCFgpu
  58 +minio.bucket= adas
59 59
60 sso.enabled= false 60 sso.enabled= false
61 sso.systemcode = SYS0019 61 sso.systemcode = SYS0019
src/main/resources/application.properties
1 -spring.profiles.active = cloud 1 +spring.profiles.active = dev
2 2
3 spring.view.suffix=.html 3 spring.view.suffix=.html
4 server.session-timeout=-1 4 server.session-timeout=-1
src/main/resources/static/pages/base/station/list.html
@@ -50,7 +50,9 @@ @@ -50,7 +50,9 @@
50 <td> 50 <td>
51 <input type="text" class="form-control form-filter input-sm" id="stationCode" name="stationCode_like"> 51 <input type="text" class="form-control form-filter input-sm" id="stationCode" name="stationCode_like">
52 </td> 52 </td>
53 - <td></td> 53 + <td>
  54 + <input type="text" class="form-control form-filter input-sm" id="passLines" name="passLines_like">
  55 + </td>
54 <td> 56 <td>
55 <input type="text" class="form-control form-filter input-sm" id="standardStationCode" name="standardStationCode_like"> 57 <input type="text" class="form-control form-filter input-sm" id="standardStationCode" name="standardStationCode_like">
56 </td> 58 </td>
src/main/resources/static/real_control_v2/fragments/north/nav/alarm/dsm.html
@@ -22,8 +22,7 @@ @@ -22,8 +22,7 @@
22 <option value="3">抽烟报警</option> 22 <option value="3">抽烟报警</option>
23 <option value="4">分神驾驶报警</option> 23 <option value="4">分神驾驶报警</option>
24 <option value="5">驾驶员异常报警</option> 24 <option value="5">驾驶员异常报警</option>
25 - <option value="6">用户自定义报警</option>  
26 - <option value="7">用户自定义报警</option> 25 + <option value="17">超速报警</option>
27 </select> 26 </select>
28 <button class="uk-button">检索</button> 27 <button class="uk-button">检索</button>
29 <!--<a id="showSSSpVedioModal" style="color: red;float: right;font-size: 12px;">查看实时视频</a>--> 28 <!--<a id="showSSSpVedioModal" style="color: red;float: right;font-size: 12px;">查看实时视频</a>-->
@@ -40,8 +39,7 @@ @@ -40,8 +39,7 @@
40 <th style="width: 12%;">异常类型</th> 39 <th style="width: 12%;">异常类型</th>
41 <th style="width: 16%;">时间</th> 40 <th style="width: 16%;">时间</th>
42 <th style="width: 16%;">报警等级</th> 41 <th style="width: 16%;">报警等级</th>
43 - <th style="width: 16%;">疲劳程度</th>  
44 - <th style="width: 10%;">附件</th> 42 + <th style="width: 20%;">附件/附加信息</th>
45 </tr> 43 </tr>
46 </thead> 44 </thead>
47 <tbody data-uk-observe> 45 <tbody data-uk-observe>
@@ -57,15 +55,18 @@ @@ -57,15 +55,18 @@
57 <script id="alarm-dsm-table-template" type="text/html"> 55 <script id="alarm-dsm-table-template" type="text/html">
58 {{each array as dsm i}} 56 {{each array as dsm i}}
59 <tr> 57 <tr>
60 - <td style="width: 14%;">{{dsm.lineCode}}</td>  
61 - <td style="width: 14%;">{{dsm.vehicleCode}}</td>  
62 - <td style="width: 13%;">{{dsm.vehiclePlate}}</td>  
63 - <td style="width: 13%;">{{dsm.alarmDescription}}</td>  
64 - <td style="width: 10%;">{{dsm.timeStr}}</td>  
65 - <td style="width: 10%;">{{dsm.level}}</td>  
66 - <td style="width: 10%;">{{dsm.fatigueDegree}}</td>  
67 - <td> 58 + <td style="width: 10%;">{{dsm.lineCode}}</td>
  59 + <td style="width: 11%;">{{dsm.vehicleCode}}</td>
  60 + <td style="width: 12%;">{{dsm.vehiclePlate}}</td>
  61 + <td style="width: 12%;">{{dsm.alarmDescription}}</td>
  62 + <td style="width: 16%;">{{dsm.timeStr}}</td>
  63 + <td style="width: 16%;">{{dsm.level}}</td>
  64 + <td style="width: 20%;">
  65 + {{if dsm.speedLimit == 0}}
68 <a class="image_link" click="" data-url="{{dsm.paths.join(',')}}" title="{{dsm.title}}">查看</a> 66 <a class="image_link" click="" data-url="{{dsm.paths.join(',')}}" title="{{dsm.title}}">查看</a>
  67 + {{else}}
  68 + {{dsm.attach}}
  69 + {{/if}}
69 </td> 70 </td>
70 </tr> 71 </tr>
71 {{/each}} 72 {{/each}}
src/main/resources/static/real_control_v2/js/alarm/alarm.js
@@ -4,18 +4,22 @@ @@ -4,18 +4,22 @@
4 var gb_alarm = (function () { 4 var gb_alarm = (function () {
5 var code2des = { 5 var code2des = {
6 6401: '前向碰撞报警', 6402: '车道偏离报警', 6403: '车距过近报警', 6404: '行人碰撞报警', 6405: '频繁变道报警', 6406: '道路标识超限报警', 6407: '障碍物报警', 6 6401: '前向碰撞报警', 6402: '车道偏离报警', 6403: '车距过近报警', 6404: '行人碰撞报警', 6405: '频繁变道报警', 6406: '道路标识超限报警', 6407: '障碍物报警',
7 - 6501: '疲劳驾驶报警', 6502: '接打电话报警', 6503: '抽烟报警', 6504: '分神驾驶报警', 6505: '驾驶员异常报警', 6506: '用户自定义报警', 6507: '用户自定义报警' 7 + 6501: '疲劳驾驶报警', 6502: '接打电话报警', 6503: '抽烟报警', 6504: '分神驾驶报警', 6505: '驾驶员异常报警', 6506: '用户自定义报警', 6507: '用户自定义报警', 6517: '超速报警'
8 }; 8 };
9 var $wrap = $('.multi_plat_msg_pop_wrap'); 9 var $wrap = $('.multi_plat_msg_pop_wrap');
10 var max = 5; 10 var max = 5;
11 11
12 var pop = function (data) { 12 var pop = function (data) {
13 //时间格式化 13 //时间格式化
14 - data.timeStr = moment(data.alarmTimeBegin).format('/'); 14 + data.timeStr = moment(data.ts).format('HH时mm分ss秒');
15 if (data.alarmType === 'adas') { 15 if (data.alarmType === 'adas') {
16 data.content = '[' + code2des[6400 + data.type] + ']'; 16 data.content = '[' + code2des[6400 + data.type] + ']';
17 } else if (data.alarmType === 'dsm') { 17 } else if (data.alarmType === 'dsm') {
18 data.content = '[' + code2des[6500 + data.type] + ']'; 18 data.content = '[' + code2des[6500 + data.type] + ']';
  19 + } else if (data.alarmType === 'over-speed') {
  20 + debugger
  21 + data.content = '[' + code2des[6500 + data.type] + ']';
  22 +
19 } 23 }
20 data.url = data.paths.join(','); 24 data.url = data.paths.join(',');
21 25
src/main/resources/static/real_control_v2/js/safe_driv/safeDriv.js
@@ -110,12 +110,14 @@ var gb_safe_driv = (function () { @@ -110,12 +110,14 @@ var gb_safe_driv = (function () {
110 case 'adas': 110 case 'adas':
111 var urls = $(this).data('url').split(','), items = []; 111 var urls = $(this).data('url').split(','), items = [];
112 urls.forEach(function (url, idx) { 112 urls.forEach(function (url, idx) {
113 - if (url.endsWith('.bin')) return; 113 + if (!url || url.endsWith('.bin')) return;
114 items.push({title: '附件' + (idx + 1), source: 'http://118.113.164.50:9008/dsm/' + url}); 114 items.push({title: '附件' + (idx + 1), source: 'http://118.113.164.50:9008/dsm/' + url});
115 }); 115 });
116 $(this).remove(); 116 $(this).remove();
117 117
118 - UIkit.lightbox.create(items, {keyboard: true}).show(); 118 + if (items.length > 0) {
  119 + UIkit.lightbox.create(items, {keyboard: true}).show();
  120 + }
119 break; 121 break;
120 default: 122 default:
121 break; 123 break;