Commit 5f4f3979ccfa803e2188f03372d90547c34686d5
1 parent
5da44207
线调客流展示
Showing
22 changed files
with
839 additions
and
474 deletions
src/main/java/com/bsth/controller/gps/GpsController.java
| @@ -5,6 +5,7 @@ import com.bsth.data.gpsdata_v2.GpsRealData; | @@ -5,6 +5,7 @@ import com.bsth.data.gpsdata_v2.GpsRealData; | ||
| 5 | import com.bsth.data.gpsdata_v2.entity.GpsEntity; | 5 | import com.bsth.data.gpsdata_v2.entity.GpsEntity; |
| 6 | import com.bsth.data.gpsdata_v2.handlers.overspeed.GpsOverspeed; | 6 | import com.bsth.data.gpsdata_v2.handlers.overspeed.GpsOverspeed; |
| 7 | import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | 7 | import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; |
| 8 | +import com.bsth.data.kl.KlData; | ||
| 8 | import com.bsth.data.schedule.e_state_check.ScheduleStationCodeChecker; | 9 | import com.bsth.data.schedule.e_state_check.ScheduleStationCodeChecker; |
| 9 | import com.bsth.data.schedule.e_state_check.entity.SCodeInfo; | 10 | import com.bsth.data.schedule.e_state_check.entity.SCodeInfo; |
| 10 | import com.bsth.service.gps.GpsService; | 11 | import com.bsth.service.gps.GpsService; |
| @@ -62,6 +63,9 @@ public class GpsController { | @@ -62,6 +63,9 @@ public class GpsController { | ||
| 62 | //班次站点检查信息 | 63 | //班次站点检查信息 |
| 63 | List<SCodeInfo> scis = ScheduleStationCodeChecker.findByLineIdx(lineArray); | 64 | List<SCodeInfo> scis = ScheduleStationCodeChecker.findByLineIdx(lineArray); |
| 64 | 65 | ||
| 66 | + for (GpsEntity gpsEntity : gpsList) { | ||
| 67 | + gpsEntity.setKl(KlData.getKl(gpsEntity.getDeviceId())); | ||
| 68 | + } | ||
| 65 | rs.put("gpsList", gpsList); | 69 | rs.put("gpsList", gpsList); |
| 66 | rs.put("overspeedList", overspeedList); | 70 | rs.put("overspeedList", overspeedList); |
| 67 | rs.put("scis", scis); | 71 | rs.put("scis", scis); |
src/main/java/com/bsth/data/gpsdata_v2/entity/GpsEntity.java
| 1 | -package com.bsth.data.gpsdata_v2.entity; | ||
| 2 | - | ||
| 3 | -import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 4 | - | ||
| 5 | -/** | ||
| 6 | - * | ||
| 7 | - * @ClassName: GpsRealData | ||
| 8 | - * @Description: TODO(HTTP接口的实时GPS数据) | ||
| 9 | - * @author PanZhao | ||
| 10 | - * @date 2016年5月11日 下午4:32:07 | ||
| 11 | - * | ||
| 12 | - */ | ||
| 13 | -public class GpsEntity implements Cloneable{ | ||
| 14 | - | ||
| 15 | - /** 公司代码 */ | ||
| 16 | - @JsonIgnore | ||
| 17 | - private Short companyCode; | ||
| 18 | - | ||
| 19 | - /** 线路编码 */ | ||
| 20 | - private String lineId; | ||
| 21 | - | ||
| 22 | - /** 设备编码 */ | ||
| 23 | - private String deviceId; | ||
| 24 | - | ||
| 25 | - /** 停车场编码 */ | ||
| 26 | - private String carparkNo; | ||
| 27 | - | ||
| 28 | - /** 站点编码 */ | ||
| 29 | - private String stopNo; | ||
| 30 | - | ||
| 31 | - /** 站点名称 */ | ||
| 32 | - private String stationName; | ||
| 33 | - | ||
| 34 | - /** 到站时间 */ | ||
| 35 | - @JsonIgnore | ||
| 36 | - private long arrTime; | ||
| 37 | - | ||
| 38 | - /** 经度 */ | ||
| 39 | - private Float lon; | ||
| 40 | - | ||
| 41 | - /** 纬度 */ | ||
| 42 | - private Float lat; | ||
| 43 | - | ||
| 44 | - /** GPS发送时间戳 */ | ||
| 45 | - private Long timestamp; | ||
| 46 | - | ||
| 47 | - /** 网关收到时间 */ | ||
| 48 | - private Long serverTimestamp; | ||
| 49 | - | ||
| 50 | - /** 速度 */ | ||
| 51 | - private Float speed; | ||
| 52 | - | ||
| 53 | - /** 方向(角度) */ | ||
| 54 | - private float direction; | ||
| 55 | - | ||
| 56 | - /** 营运状态( 0 营运 ,1 非营运, -1 无效) */ | ||
| 57 | - private Integer state; | ||
| 58 | - | ||
| 59 | - /** 上下行(0 上行 , 1 下行 , -1 无效) */ | ||
| 60 | - private Byte upDown; | ||
| 61 | - | ||
| 62 | - /** | ||
| 63 | - * 设备原始走向_营运状态 | ||
| 64 | - * 当设备状态和系统不一致时,该字段有值 | ||
| 65 | - */ | ||
| 66 | - private String origStateStr; | ||
| 67 | - | ||
| 68 | - /** 车辆内部编码 */ | ||
| 69 | - private String nbbm; | ||
| 70 | - | ||
| 71 | - /** 预计到达终点时间 */ | ||
| 72 | - private Float expectStopTime; | ||
| 73 | - | ||
| 74 | - /** 当前执行班次ID */ | ||
| 75 | - private Long schId; | ||
| 76 | - | ||
| 77 | - private int version; | ||
| 78 | - | ||
| 79 | - /** 0: 站外 1:站内 2:场内 */ | ||
| 80 | - private int instation; | ||
| 81 | - | ||
| 82 | - /** 站点信息,站内时有值 */ | ||
| 83 | - @JsonIgnore | ||
| 84 | - private StationRoute station; | ||
| 85 | - | ||
| 86 | - /** | ||
| 87 | - * 前置约束 -站点编码 | ||
| 88 | - */ | ||
| 89 | - @JsonIgnore | ||
| 90 | - private String premiseCode; | ||
| 91 | - | ||
| 92 | - /** 状态 */ | ||
| 93 | - private String signalState = "normal"; | ||
| 94 | - | ||
| 95 | - /** 异常状态 */ | ||
| 96 | - private String abnormalStatus; | ||
| 97 | - | ||
| 98 | - /** 越界距离 */ | ||
| 99 | - private double outOfBoundDistance; | ||
| 100 | - | ||
| 101 | - /** gps是否有效 设备端发送的状态 */ | ||
| 102 | - private int valid; | ||
| 103 | - | ||
| 104 | - /** | ||
| 105 | - * 数据来源 | ||
| 106 | - * 1:网关 | ||
| 107 | - * 0:转发 | ||
| 108 | - */ | ||
| 109 | - private int source = -1; | ||
| 110 | - | ||
| 111 | - private String remark; | ||
| 112 | - private String planCode; | ||
| 113 | - | ||
| 114 | - private String dvrcode; | ||
| 115 | - | ||
| 116 | - public Object clone() { | ||
| 117 | - try { | ||
| 118 | - return super.clone(); | ||
| 119 | - } catch (CloneNotSupportedException e) { | ||
| 120 | - return null; | ||
| 121 | - } | ||
| 122 | - } | ||
| 123 | - | ||
| 124 | - public String getDvrcode() { | ||
| 125 | - return dvrcode; | ||
| 126 | - } | ||
| 127 | - | ||
| 128 | - public void setDvrcode(String dvrcode) { | ||
| 129 | - this.dvrcode = dvrcode; | ||
| 130 | - } | ||
| 131 | - | ||
| 132 | - public String getDeviceId() { | ||
| 133 | - return deviceId; | ||
| 134 | - } | ||
| 135 | - | ||
| 136 | - public void setDeviceId(String deviceId) { | ||
| 137 | - this.deviceId = deviceId; | ||
| 138 | - } | ||
| 139 | - | ||
| 140 | - public String getCarparkNo() { | ||
| 141 | - return carparkNo; | ||
| 142 | - } | ||
| 143 | - | ||
| 144 | - public void setCarparkNo(String carparkNo) { | ||
| 145 | - this.carparkNo = carparkNo; | ||
| 146 | - } | ||
| 147 | - | ||
| 148 | - public String getStopNo() { | ||
| 149 | - return stopNo; | ||
| 150 | - } | ||
| 151 | - | ||
| 152 | - public void setStopNo(String stopNo) { | ||
| 153 | - this.stopNo = stopNo; | ||
| 154 | - } | ||
| 155 | - | ||
| 156 | - public Float getLon() { | ||
| 157 | - return lon; | ||
| 158 | - } | ||
| 159 | - | ||
| 160 | - public void setLon(Float lon) { | ||
| 161 | - this.lon = lon; | ||
| 162 | - } | ||
| 163 | - | ||
| 164 | - public Float getLat() { | ||
| 165 | - return lat; | ||
| 166 | - } | ||
| 167 | - | ||
| 168 | - public void setLat(Float lat) { | ||
| 169 | - this.lat = lat; | ||
| 170 | - } | ||
| 171 | - | ||
| 172 | - public Long getTimestamp() { | ||
| 173 | - return timestamp; | ||
| 174 | - } | ||
| 175 | - | ||
| 176 | - public void setTimestamp(Long timestamp) { | ||
| 177 | - this.timestamp = timestamp; | ||
| 178 | - } | ||
| 179 | - | ||
| 180 | - | ||
| 181 | - public Integer getState() { | ||
| 182 | - return state; | ||
| 183 | - } | ||
| 184 | - | ||
| 185 | - public void setState(Integer state) { | ||
| 186 | - this.state = state; | ||
| 187 | - } | ||
| 188 | - | ||
| 189 | - public String getNbbm() { | ||
| 190 | - return nbbm; | ||
| 191 | - } | ||
| 192 | - | ||
| 193 | - public void setNbbm(String nbbm) { | ||
| 194 | - this.nbbm = nbbm; | ||
| 195 | - } | ||
| 196 | - | ||
| 197 | - public String getStationName() { | ||
| 198 | - return stationName; | ||
| 199 | - } | ||
| 200 | - | ||
| 201 | - public void setStationName(String stationName) { | ||
| 202 | - this.stationName = stationName; | ||
| 203 | - } | ||
| 204 | - | ||
| 205 | - public long getArrTime() { | ||
| 206 | - return arrTime; | ||
| 207 | - } | ||
| 208 | - | ||
| 209 | - public void setArrTime(long arrTime) { | ||
| 210 | - this.arrTime = arrTime; | ||
| 211 | - } | ||
| 212 | - | ||
| 213 | - public Float getExpectStopTime() { | ||
| 214 | - return expectStopTime; | ||
| 215 | - } | ||
| 216 | - | ||
| 217 | - public void setExpectStopTime(Float expectStopTime) { | ||
| 218 | - this.expectStopTime = expectStopTime; | ||
| 219 | - } | ||
| 220 | - | ||
| 221 | - public String getLineId() { | ||
| 222 | - return lineId; | ||
| 223 | - } | ||
| 224 | - | ||
| 225 | - public void setLineId(String lineId) { | ||
| 226 | - this.lineId = lineId; | ||
| 227 | - } | ||
| 228 | - | ||
| 229 | - public Long getSchId() { | ||
| 230 | - return schId; | ||
| 231 | - } | ||
| 232 | - | ||
| 233 | - public void setSchId(Long schId) { | ||
| 234 | - this.schId = schId; | ||
| 235 | - } | ||
| 236 | - | ||
| 237 | - | ||
| 238 | - public int getVersion() { | ||
| 239 | - return version; | ||
| 240 | - } | ||
| 241 | - | ||
| 242 | - public void setVersion(int version) { | ||
| 243 | - this.version = version; | ||
| 244 | - } | ||
| 245 | - | ||
| 246 | - public StationRoute getStation() { | ||
| 247 | - return station; | ||
| 248 | - } | ||
| 249 | - | ||
| 250 | - public void setStation(StationRoute station) { | ||
| 251 | - this.station = station; | ||
| 252 | - } | ||
| 253 | - | ||
| 254 | - public String getSignalState() { | ||
| 255 | - return signalState; | ||
| 256 | - } | ||
| 257 | - | ||
| 258 | - public void setSignalState(String signalState) { | ||
| 259 | - this.signalState = signalState; | ||
| 260 | - } | ||
| 261 | - | ||
| 262 | - public int getInstation() { | ||
| 263 | - return instation; | ||
| 264 | - } | ||
| 265 | - | ||
| 266 | - public void setInstation(int instation) { | ||
| 267 | - this.instation = instation; | ||
| 268 | - } | ||
| 269 | - | ||
| 270 | - public String getAbnormalStatus() { | ||
| 271 | - return abnormalStatus; | ||
| 272 | - } | ||
| 273 | - | ||
| 274 | - public void setAbnormalStatus(String abnormalStatus) { | ||
| 275 | - this.abnormalStatus = abnormalStatus; | ||
| 276 | - } | ||
| 277 | - | ||
| 278 | - public double getOutOfBoundDistance() { | ||
| 279 | - return outOfBoundDistance; | ||
| 280 | - } | ||
| 281 | - | ||
| 282 | - public void setOutOfBoundDistance(double outOfBoundDistance) { | ||
| 283 | - this.outOfBoundDistance = outOfBoundDistance; | ||
| 284 | - } | ||
| 285 | - | ||
| 286 | - public int getValid() { | ||
| 287 | - return valid; | ||
| 288 | - } | ||
| 289 | - | ||
| 290 | - public void setValid(int valid) { | ||
| 291 | - this.valid = valid; | ||
| 292 | - } | ||
| 293 | - | ||
| 294 | - | ||
| 295 | - | ||
| 296 | - public short getCompanyCode() { | ||
| 297 | - return companyCode; | ||
| 298 | - } | ||
| 299 | - | ||
| 300 | - public void setCompanyCode(short companyCode) { | ||
| 301 | - this.companyCode = companyCode; | ||
| 302 | - } | ||
| 303 | - | ||
| 304 | - public Byte getUpDown() { | ||
| 305 | - return upDown; | ||
| 306 | - } | ||
| 307 | - | ||
| 308 | - public void setUpDown(Byte upDown) { | ||
| 309 | - this.upDown = upDown; | ||
| 310 | - } | ||
| 311 | - | ||
| 312 | - | ||
| 313 | - public float getDirection() { | ||
| 314 | - return direction; | ||
| 315 | - } | ||
| 316 | - | ||
| 317 | - public void setDirection(float direction) { | ||
| 318 | - this.direction = direction; | ||
| 319 | - } | ||
| 320 | - | ||
| 321 | - public Float getSpeed() { | ||
| 322 | - return speed; | ||
| 323 | - } | ||
| 324 | - | ||
| 325 | - public void setSpeed(Float speed) { | ||
| 326 | - this.speed = speed; | ||
| 327 | - } | ||
| 328 | - | ||
| 329 | - public int getSource() { | ||
| 330 | - return source; | ||
| 331 | - } | ||
| 332 | - | ||
| 333 | - public void setSource(int source) { | ||
| 334 | - this.source = source; | ||
| 335 | - } | ||
| 336 | - | ||
| 337 | - public void offline(){ | ||
| 338 | - this.setAbnormalStatus("offline"); | ||
| 339 | - } | ||
| 340 | - | ||
| 341 | -/* public boolean isOnline(){ | ||
| 342 | - if(isOffline()) | ||
| 343 | - return false; | ||
| 344 | - | ||
| 345 | - long t = System.currentTimeMillis(); | ||
| 346 | - | ||
| 347 | - if((t - this.getServerTimestamp()) > 1000 * 60 * 2){ | ||
| 348 | - return false; | ||
| 349 | - } | ||
| 350 | - | ||
| 351 | - if((this.getServerTimestamp() - t) > 1000 * 60 * 3){ | ||
| 352 | - return false; | ||
| 353 | - } | ||
| 354 | - return true; | ||
| 355 | - }*/ | ||
| 356 | - | ||
| 357 | - /** | ||
| 358 | - * 是否营运 | ||
| 359 | - * @return | ||
| 360 | - */ | ||
| 361 | - public boolean isService(){ | ||
| 362 | - return state!=null && state==0; | ||
| 363 | - } | ||
| 364 | - | ||
| 365 | - public boolean isOffline(){ | ||
| 366 | - return this.getAbnormalStatus() != null && this.getAbnormalStatus().equals("offline"); | ||
| 367 | - } | ||
| 368 | - | ||
| 369 | - public Long getServerTimestamp() { | ||
| 370 | - return serverTimestamp; | ||
| 371 | - } | ||
| 372 | - | ||
| 373 | - public void setServerTimestamp(Long serverTimestamp) { | ||
| 374 | - this.serverTimestamp = serverTimestamp; | ||
| 375 | - } | ||
| 376 | - | ||
| 377 | - public String getPremiseCode() { | ||
| 378 | - return premiseCode; | ||
| 379 | - } | ||
| 380 | - | ||
| 381 | - public void setPremiseCode(String premiseCode) { | ||
| 382 | - this.premiseCode = premiseCode; | ||
| 383 | - } | ||
| 384 | - | ||
| 385 | - public String getRemark() { | ||
| 386 | - return remark; | ||
| 387 | - } | ||
| 388 | - | ||
| 389 | - public void setRemark(String remark) { | ||
| 390 | - this.remark = remark; | ||
| 391 | - } | ||
| 392 | - | ||
| 393 | - public String getPlanCode() { | ||
| 394 | - return planCode; | ||
| 395 | - } | ||
| 396 | - | ||
| 397 | - public void setPlanCode(String planCode) { | ||
| 398 | - this.planCode = planCode; | ||
| 399 | - } | ||
| 400 | - | ||
| 401 | - public String getOrigStateStr() { | ||
| 402 | - return origStateStr; | ||
| 403 | - } | ||
| 404 | - | ||
| 405 | - public void setOrigStateStr(String origStateStr) { | ||
| 406 | - this.origStateStr = origStateStr; | ||
| 407 | - } | ||
| 408 | -} | 1 | +package com.bsth.data.gpsdata_v2.entity; |
| 2 | + | ||
| 3 | +import com.bsth.entity.Kl; | ||
| 4 | +import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * | ||
| 8 | + * @ClassName: GpsRealData | ||
| 9 | + * @Description: TODO(HTTP接口的实时GPS数据) | ||
| 10 | + * @author PanZhao | ||
| 11 | + * @date 2016年5月11日 下午4:32:07 | ||
| 12 | + * | ||
| 13 | + */ | ||
| 14 | +public class GpsEntity implements Cloneable{ | ||
| 15 | + | ||
| 16 | + /** 公司代码 */ | ||
| 17 | + @JsonIgnore | ||
| 18 | + private Short companyCode; | ||
| 19 | + | ||
| 20 | + /** 线路编码 */ | ||
| 21 | + private String lineId; | ||
| 22 | + | ||
| 23 | + /** 设备编码 */ | ||
| 24 | + private String deviceId; | ||
| 25 | + | ||
| 26 | + /** 停车场编码 */ | ||
| 27 | + private String carparkNo; | ||
| 28 | + | ||
| 29 | + /** 站点编码 */ | ||
| 30 | + private String stopNo; | ||
| 31 | + | ||
| 32 | + /** 站点名称 */ | ||
| 33 | + private String stationName; | ||
| 34 | + | ||
| 35 | + /** 到站时间 */ | ||
| 36 | + @JsonIgnore | ||
| 37 | + private long arrTime; | ||
| 38 | + | ||
| 39 | + /** 经度 */ | ||
| 40 | + private Float lon; | ||
| 41 | + | ||
| 42 | + /** 纬度 */ | ||
| 43 | + private Float lat; | ||
| 44 | + | ||
| 45 | + /** GPS发送时间戳 */ | ||
| 46 | + private Long timestamp; | ||
| 47 | + | ||
| 48 | + /** 网关收到时间 */ | ||
| 49 | + private Long serverTimestamp; | ||
| 50 | + | ||
| 51 | + /** 速度 */ | ||
| 52 | + private Float speed; | ||
| 53 | + | ||
| 54 | + /** 方向(角度) */ | ||
| 55 | + private float direction; | ||
| 56 | + | ||
| 57 | + /** 营运状态( 0 营运 ,1 非营运, -1 无效) */ | ||
| 58 | + private Integer state; | ||
| 59 | + | ||
| 60 | + /** 上下行(0 上行 , 1 下行 , -1 无效) */ | ||
| 61 | + private Byte upDown; | ||
| 62 | + | ||
| 63 | + /** | ||
| 64 | + * 设备原始走向_营运状态 | ||
| 65 | + * 当设备状态和系统不一致时,该字段有值 | ||
| 66 | + */ | ||
| 67 | + private String origStateStr; | ||
| 68 | + | ||
| 69 | + /** 车辆内部编码 */ | ||
| 70 | + private String nbbm; | ||
| 71 | + | ||
| 72 | + /** 预计到达终点时间 */ | ||
| 73 | + private Float expectStopTime; | ||
| 74 | + | ||
| 75 | + /** 当前执行班次ID */ | ||
| 76 | + private Long schId; | ||
| 77 | + | ||
| 78 | + private int version; | ||
| 79 | + | ||
| 80 | + /** 0: 站外 1:站内 2:场内 */ | ||
| 81 | + private int instation; | ||
| 82 | + | ||
| 83 | + /** 站点信息,站内时有值 */ | ||
| 84 | + @JsonIgnore | ||
| 85 | + private StationRoute station; | ||
| 86 | + | ||
| 87 | + /** | ||
| 88 | + * 前置约束 -站点编码 | ||
| 89 | + */ | ||
| 90 | + @JsonIgnore | ||
| 91 | + private String premiseCode; | ||
| 92 | + | ||
| 93 | + /** 状态 */ | ||
| 94 | + private String signalState = "normal"; | ||
| 95 | + | ||
| 96 | + /** 异常状态 */ | ||
| 97 | + private String abnormalStatus; | ||
| 98 | + | ||
| 99 | + /** 越界距离 */ | ||
| 100 | + private double outOfBoundDistance; | ||
| 101 | + | ||
| 102 | + /** gps是否有效 设备端发送的状态 */ | ||
| 103 | + private int valid; | ||
| 104 | + | ||
| 105 | + /** | ||
| 106 | + * 数据来源 | ||
| 107 | + * 1:网关 | ||
| 108 | + * 0:转发 | ||
| 109 | + */ | ||
| 110 | + private int source = -1; | ||
| 111 | + | ||
| 112 | + private String remark; | ||
| 113 | + private String planCode; | ||
| 114 | + | ||
| 115 | + private String dvrcode; | ||
| 116 | + | ||
| 117 | + private Kl kl; | ||
| 118 | + public Object clone() { | ||
| 119 | + try { | ||
| 120 | + return super.clone(); | ||
| 121 | + } catch (CloneNotSupportedException e) { | ||
| 122 | + return null; | ||
| 123 | + } | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + public String getDvrcode() { | ||
| 127 | + return dvrcode; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + public void setDvrcode(String dvrcode) { | ||
| 131 | + this.dvrcode = dvrcode; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + public String getDeviceId() { | ||
| 135 | + return deviceId; | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + public void setDeviceId(String deviceId) { | ||
| 139 | + this.deviceId = deviceId; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + public String getCarparkNo() { | ||
| 143 | + return carparkNo; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + public void setCarparkNo(String carparkNo) { | ||
| 147 | + this.carparkNo = carparkNo; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + public String getStopNo() { | ||
| 151 | + return stopNo; | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + public void setStopNo(String stopNo) { | ||
| 155 | + this.stopNo = stopNo; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + public Float getLon() { | ||
| 159 | + return lon; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + public void setLon(Float lon) { | ||
| 163 | + this.lon = lon; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + public Float getLat() { | ||
| 167 | + return lat; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + public void setLat(Float lat) { | ||
| 171 | + this.lat = lat; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + public Long getTimestamp() { | ||
| 175 | + return timestamp; | ||
| 176 | + } | ||
| 177 | + | ||
| 178 | + public void setTimestamp(Long timestamp) { | ||
| 179 | + this.timestamp = timestamp; | ||
| 180 | + } | ||
| 181 | + | ||
| 182 | + | ||
| 183 | + public Integer getState() { | ||
| 184 | + return state; | ||
| 185 | + } | ||
| 186 | + | ||
| 187 | + public void setState(Integer state) { | ||
| 188 | + this.state = state; | ||
| 189 | + } | ||
| 190 | + | ||
| 191 | + public String getNbbm() { | ||
| 192 | + return nbbm; | ||
| 193 | + } | ||
| 194 | + | ||
| 195 | + public void setNbbm(String nbbm) { | ||
| 196 | + this.nbbm = nbbm; | ||
| 197 | + } | ||
| 198 | + | ||
| 199 | + public String getStationName() { | ||
| 200 | + return stationName; | ||
| 201 | + } | ||
| 202 | + | ||
| 203 | + public void setStationName(String stationName) { | ||
| 204 | + this.stationName = stationName; | ||
| 205 | + } | ||
| 206 | + | ||
| 207 | + public long getArrTime() { | ||
| 208 | + return arrTime; | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + public void setArrTime(long arrTime) { | ||
| 212 | + this.arrTime = arrTime; | ||
| 213 | + } | ||
| 214 | + | ||
| 215 | + public Float getExpectStopTime() { | ||
| 216 | + return expectStopTime; | ||
| 217 | + } | ||
| 218 | + | ||
| 219 | + public void setExpectStopTime(Float expectStopTime) { | ||
| 220 | + this.expectStopTime = expectStopTime; | ||
| 221 | + } | ||
| 222 | + | ||
| 223 | + public String getLineId() { | ||
| 224 | + return lineId; | ||
| 225 | + } | ||
| 226 | + | ||
| 227 | + public void setLineId(String lineId) { | ||
| 228 | + this.lineId = lineId; | ||
| 229 | + } | ||
| 230 | + | ||
| 231 | + public Long getSchId() { | ||
| 232 | + return schId; | ||
| 233 | + } | ||
| 234 | + | ||
| 235 | + public void setSchId(Long schId) { | ||
| 236 | + this.schId = schId; | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + | ||
| 240 | + public int getVersion() { | ||
| 241 | + return version; | ||
| 242 | + } | ||
| 243 | + | ||
| 244 | + public void setVersion(int version) { | ||
| 245 | + this.version = version; | ||
| 246 | + } | ||
| 247 | + | ||
| 248 | + public StationRoute getStation() { | ||
| 249 | + return station; | ||
| 250 | + } | ||
| 251 | + | ||
| 252 | + public void setStation(StationRoute station) { | ||
| 253 | + this.station = station; | ||
| 254 | + } | ||
| 255 | + | ||
| 256 | + public String getSignalState() { | ||
| 257 | + return signalState; | ||
| 258 | + } | ||
| 259 | + | ||
| 260 | + public void setSignalState(String signalState) { | ||
| 261 | + this.signalState = signalState; | ||
| 262 | + } | ||
| 263 | + | ||
| 264 | + public int getInstation() { | ||
| 265 | + return instation; | ||
| 266 | + } | ||
| 267 | + | ||
| 268 | + public void setInstation(int instation) { | ||
| 269 | + this.instation = instation; | ||
| 270 | + } | ||
| 271 | + | ||
| 272 | + public String getAbnormalStatus() { | ||
| 273 | + return abnormalStatus; | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + public void setAbnormalStatus(String abnormalStatus) { | ||
| 277 | + this.abnormalStatus = abnormalStatus; | ||
| 278 | + } | ||
| 279 | + | ||
| 280 | + public double getOutOfBoundDistance() { | ||
| 281 | + return outOfBoundDistance; | ||
| 282 | + } | ||
| 283 | + | ||
| 284 | + public void setOutOfBoundDistance(double outOfBoundDistance) { | ||
| 285 | + this.outOfBoundDistance = outOfBoundDistance; | ||
| 286 | + } | ||
| 287 | + | ||
| 288 | + public int getValid() { | ||
| 289 | + return valid; | ||
| 290 | + } | ||
| 291 | + | ||
| 292 | + public void setValid(int valid) { | ||
| 293 | + this.valid = valid; | ||
| 294 | + } | ||
| 295 | + | ||
| 296 | + | ||
| 297 | + | ||
| 298 | + public short getCompanyCode() { | ||
| 299 | + return companyCode; | ||
| 300 | + } | ||
| 301 | + | ||
| 302 | + public void setCompanyCode(short companyCode) { | ||
| 303 | + this.companyCode = companyCode; | ||
| 304 | + } | ||
| 305 | + | ||
| 306 | + public Byte getUpDown() { | ||
| 307 | + return upDown; | ||
| 308 | + } | ||
| 309 | + | ||
| 310 | + public void setUpDown(Byte upDown) { | ||
| 311 | + this.upDown = upDown; | ||
| 312 | + } | ||
| 313 | + | ||
| 314 | + | ||
| 315 | + public float getDirection() { | ||
| 316 | + return direction; | ||
| 317 | + } | ||
| 318 | + | ||
| 319 | + public void setDirection(float direction) { | ||
| 320 | + this.direction = direction; | ||
| 321 | + } | ||
| 322 | + | ||
| 323 | + public Float getSpeed() { | ||
| 324 | + return speed; | ||
| 325 | + } | ||
| 326 | + | ||
| 327 | + public void setSpeed(Float speed) { | ||
| 328 | + this.speed = speed; | ||
| 329 | + } | ||
| 330 | + | ||
| 331 | + public int getSource() { | ||
| 332 | + return source; | ||
| 333 | + } | ||
| 334 | + | ||
| 335 | + public void setSource(int source) { | ||
| 336 | + this.source = source; | ||
| 337 | + } | ||
| 338 | + | ||
| 339 | + public void offline(){ | ||
| 340 | + this.setAbnormalStatus("offline"); | ||
| 341 | + } | ||
| 342 | + | ||
| 343 | +/* public boolean isOnline(){ | ||
| 344 | + if(isOffline()) | ||
| 345 | + return false; | ||
| 346 | + | ||
| 347 | + long t = System.currentTimeMillis(); | ||
| 348 | + | ||
| 349 | + if((t - this.getServerTimestamp()) > 1000 * 60 * 2){ | ||
| 350 | + return false; | ||
| 351 | + } | ||
| 352 | + | ||
| 353 | + if((this.getServerTimestamp() - t) > 1000 * 60 * 3){ | ||
| 354 | + return false; | ||
| 355 | + } | ||
| 356 | + return true; | ||
| 357 | + }*/ | ||
| 358 | + | ||
| 359 | + /** | ||
| 360 | + * 是否营运 | ||
| 361 | + * @return | ||
| 362 | + */ | ||
| 363 | + public boolean isService(){ | ||
| 364 | + return state!=null && state==0; | ||
| 365 | + } | ||
| 366 | + | ||
| 367 | + public boolean isOffline(){ | ||
| 368 | + return this.getAbnormalStatus() != null && this.getAbnormalStatus().equals("offline"); | ||
| 369 | + } | ||
| 370 | + | ||
| 371 | + public Long getServerTimestamp() { | ||
| 372 | + return serverTimestamp; | ||
| 373 | + } | ||
| 374 | + | ||
| 375 | + public void setServerTimestamp(Long serverTimestamp) { | ||
| 376 | + this.serverTimestamp = serverTimestamp; | ||
| 377 | + } | ||
| 378 | + | ||
| 379 | + public String getPremiseCode() { | ||
| 380 | + return premiseCode; | ||
| 381 | + } | ||
| 382 | + | ||
| 383 | + public void setPremiseCode(String premiseCode) { | ||
| 384 | + this.premiseCode = premiseCode; | ||
| 385 | + } | ||
| 386 | + | ||
| 387 | + public String getRemark() { | ||
| 388 | + return remark; | ||
| 389 | + } | ||
| 390 | + | ||
| 391 | + public void setRemark(String remark) { | ||
| 392 | + this.remark = remark; | ||
| 393 | + } | ||
| 394 | + | ||
| 395 | + public String getPlanCode() { | ||
| 396 | + return planCode; | ||
| 397 | + } | ||
| 398 | + | ||
| 399 | + public void setPlanCode(String planCode) { | ||
| 400 | + this.planCode = planCode; | ||
| 401 | + } | ||
| 402 | + | ||
| 403 | + public String getOrigStateStr() { | ||
| 404 | + return origStateStr; | ||
| 405 | + } | ||
| 406 | + | ||
| 407 | + public void setOrigStateStr(String origStateStr) { | ||
| 408 | + this.origStateStr = origStateStr; | ||
| 409 | + } | ||
| 410 | + public Kl getKl() { | ||
| 411 | + return kl; | ||
| 412 | + } | ||
| 413 | + | ||
| 414 | + public void setKl(Kl kl) { | ||
| 415 | + this.kl = kl; | ||
| 416 | + } | ||
| 417 | +} |
src/main/java/com/bsth/data/kl/KlData.java
0 → 100644
| 1 | +package com.bsth.data.kl; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.Kl; | ||
| 4 | +import com.bsth.service.Kl.KlService; | ||
| 5 | +import org.slf4j.Logger; | ||
| 6 | +import org.slf4j.LoggerFactory; | ||
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 8 | +import org.springframework.beans.factory.annotation.Value; | ||
| 9 | +import org.springframework.scheduling.annotation.Scheduled; | ||
| 10 | +import org.springframework.stereotype.Component; | ||
| 11 | +import java.util.*; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * @author ym | ||
| 15 | + * @ClassName: KlData | ||
| 16 | + * @Description: TODO(客流数据加载定时器) | ||
| 17 | + * @date 2024年7月18日09:59:40 | ||
| 18 | + */ | ||
| 19 | +@Component | ||
| 20 | +public class KlData { | ||
| 21 | + | ||
| 22 | + static Logger logger = LoggerFactory.getLogger(KlData.class); | ||
| 23 | + | ||
| 24 | + //客流数据 | ||
| 25 | + private static Map<String, Kl> KlData = new HashMap<>(); | ||
| 26 | + | ||
| 27 | + @Autowired | ||
| 28 | + private KlService klService; | ||
| 29 | + | ||
| 30 | + @Value("${passengerFlow.url}") | ||
| 31 | + private String url; | ||
| 32 | + | ||
| 33 | + @Scheduled(cron = "0/10 * * * * ?") | ||
| 34 | + public void loadKl() { | ||
| 35 | + Map<String,Kl> map= new HashMap<>(); | ||
| 36 | + List<Kl> list = klService.loadKl(); | ||
| 37 | + for (Kl kl : list) { | ||
| 38 | + String photo=kl.getPhoto(); | ||
| 39 | + kl.setPhoto(url+photo); | ||
| 40 | + map.put(kl.getDeviceId(),kl); | ||
| 41 | + } | ||
| 42 | + KlData =map; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public static Kl getKl(String deviceId){ | ||
| 46 | + //return KlData.get( KlData.keySet().toArray()[0]); | ||
| 47 | + return KlData.get(deviceId); | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + | ||
| 51 | +} | ||
| 0 | \ No newline at end of file | 52 | \ No newline at end of file |
src/main/java/com/bsth/entity/Kl.java
0 → 100644
| 1 | +package com.bsth.entity; | ||
| 2 | + | ||
| 3 | +public class Kl { | ||
| 4 | + | ||
| 5 | + private String lineCode; | ||
| 6 | + private String lineName; | ||
| 7 | + private String deviceId; | ||
| 8 | + private String stopNo; | ||
| 9 | + private String stationName; | ||
| 10 | + private String upDown; | ||
| 11 | + private String photo; | ||
| 12 | + private String num; | ||
| 13 | + private String createDate; | ||
| 14 | + | ||
| 15 | + public String getLineCode() { | ||
| 16 | + return lineCode; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + public void setLineCode(String lineCode) { | ||
| 20 | + this.lineCode = lineCode; | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + public String getDeviceId() { | ||
| 24 | + return deviceId; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + public void setDeviceId(String deviceId) { | ||
| 28 | + this.deviceId = deviceId; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + public String getStopNo() { | ||
| 32 | + return stopNo; | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + public void setStopNo(String stopNo) { | ||
| 36 | + this.stopNo = stopNo; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + public String getUpDown() { | ||
| 40 | + return upDown; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + public void setUpDown(String upDown) { | ||
| 44 | + this.upDown = upDown; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + public String getPhoto() { | ||
| 48 | + return photo; | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + public void setPhoto(String photo) { | ||
| 52 | + this.photo = photo; | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + public String getNum() { | ||
| 56 | + return num; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + public void setNum(String num) { | ||
| 60 | + this.num = num; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + public String getCreateDate() { | ||
| 64 | + return createDate; | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + public void setCreateDate(String createDate) { | ||
| 68 | + this.createDate = createDate; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + public String getLineName() { | ||
| 72 | + return lineName; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + public void setLineName(String lineName) { | ||
| 76 | + this.lineName = lineName; | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + public String getStationName() { | ||
| 80 | + return stationName; | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + public void setStationName(String stationName) { | ||
| 84 | + this.stationName = stationName; | ||
| 85 | + } | ||
| 86 | +} |
src/main/java/com/bsth/service/Kl/KlService.java
0 → 100644
| 1 | +package com.bsth.service.Kl; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.Kl; | ||
| 4 | +import com.bsth.entity.logger.Logger_MileModify; | ||
| 5 | +import com.bsth.service.BaseService; | ||
| 6 | + | ||
| 7 | +import java.util.List; | ||
| 8 | +import java.util.Map; | ||
| 9 | + | ||
| 10 | + | ||
| 11 | +public interface KlService { | ||
| 12 | + Map<String, Object> query(Map<String, Object> map); | ||
| 13 | + | ||
| 14 | + List<Kl> loadKl(); | ||
| 15 | +} |
src/main/java/com/bsth/service/Kl/impl/KlServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.Kl.impl; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | + | ||
| 5 | +import com.bsth.entity.Kl; | ||
| 6 | +import com.bsth.service.Kl.KlService; | ||
| 7 | +import org.slf4j.Logger; | ||
| 8 | +import org.slf4j.LoggerFactory; | ||
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 10 | +import org.springframework.beans.factory.annotation.Value; | ||
| 11 | +import org.springframework.jdbc.core.BeanPropertyRowMapper; | ||
| 12 | +import org.springframework.jdbc.core.JdbcTemplate; | ||
| 13 | +import org.springframework.stereotype.Service; | ||
| 14 | +import java.time.LocalDate; | ||
| 15 | +import java.time.LocalDateTime; | ||
| 16 | +import java.time.format.DateTimeFormatter; | ||
| 17 | +import java.util.*; | ||
| 18 | + | ||
| 19 | +@Service | ||
| 20 | +public class KlServiceImpl implements KlService { | ||
| 21 | + | ||
| 22 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 23 | + | ||
| 24 | + @Autowired | ||
| 25 | + JdbcTemplate jdbcTemplate; | ||
| 26 | + | ||
| 27 | + private static DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd"); | ||
| 28 | + | ||
| 29 | + @Value("${passengerFlow.url}") | ||
| 30 | + private String url; | ||
| 31 | + | ||
| 32 | + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | ||
| 33 | + | ||
| 34 | + @Override | ||
| 35 | + public Map<String, Object> query(Map<String, Object> map) { | ||
| 36 | + Map<String, Object> modelMap = new HashMap<>(); | ||
| 37 | + try { | ||
| 38 | + StringBuffer sql=new StringBuffer("SELECT * FROM bsth_c_kl where 1=1 "); | ||
| 39 | + if(map.get("line")!=null && !map.get("line").equals("")){ | ||
| 40 | + sql.append(" and line_code ='"+map.get("line")+"'"); | ||
| 41 | + } | ||
| 42 | + if(map.get("deviceId_like")!=null && !map.get("deviceId_like").equals("")){ | ||
| 43 | + sql.append(" and deviceId like '%"+map.get("deviceId_like")+"%'"); | ||
| 44 | + } | ||
| 45 | + String date = LocalDate.now().format(dtf); | ||
| 46 | + if(map.get("date")!=null){ | ||
| 47 | + date=map.get("date").toString(); | ||
| 48 | + } | ||
| 49 | + sql.append(" and createDate >='"+date+" 00:00:00'"); | ||
| 50 | + sql.append(" and createDate <='"+date+" 23:59:59'"); | ||
| 51 | + List<Map<String,Object>> query = jdbcTemplate.queryForList(sql.toString()); | ||
| 52 | + Integer page = Integer.valueOf(map.containsKey("page")?map.get("page").toString():"0"); | ||
| 53 | + int end = (page+1)*10>query.size()?query.size():(page+1)*10; | ||
| 54 | + List<Map<String,Object>> result=query.subList(page*10, end); | ||
| 55 | + for (Map<String, Object> m : result) { | ||
| 56 | + m.put("time",m.get("createDate").toString().substring(0,19)); | ||
| 57 | + m.put("photo",url+m.get("photo")); | ||
| 58 | + } | ||
| 59 | + modelMap.put("dataList", result); | ||
| 60 | + modelMap.put("totalPages", query.size()%10>0?query.size()/10+1:query.size()/10); | ||
| 61 | + modelMap.put("code","00"); | ||
| 62 | + return modelMap; | ||
| 63 | + } catch (Exception e) { | ||
| 64 | + logger.error("客流查询异常", e); | ||
| 65 | + modelMap.put("code","502"); | ||
| 66 | + return modelMap; | ||
| 67 | + } | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + @Override | ||
| 71 | + public List<Kl> loadKl() { | ||
| 72 | + List<Kl> list = new ArrayList<>(); | ||
| 73 | + try { | ||
| 74 | + LocalDateTime localDateTime = LocalDateTime.now().minusMinutes(3); | ||
| 75 | + String time = localDateTime.format(dateTimeFormatter); | ||
| 76 | + StringBuffer sql=new StringBuffer("select * from bsth_c_kl where createDate>='" +time+ | ||
| 77 | + "' and id in(SELECT max(id) from bsth_c_kl GROUP BY deviceId)"); | ||
| 78 | + list = jdbcTemplate.query(sql.toString(), BeanPropertyRowMapper.newInstance(Kl.class)); | ||
| 79 | + } catch (Exception e) { | ||
| 80 | + logger.error("客流信息加载异常", e); | ||
| 81 | + } | ||
| 82 | + return list; | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + | ||
| 86 | +} |
src/main/resources/application-test.properties
| @@ -40,4 +40,5 @@ sso.http.url.auth= http://10.10.200.142:9112/prod-api/system/utilitySystem/check | @@ -40,4 +40,5 @@ sso.http.url.auth= http://10.10.200.142:9112/prod-api/system/utilitySystem/check | ||
| 40 | dc.imgurl= E:/klimg | 40 | dc.imgurl= E:/klimg |
| 41 | dc.profile= profile | 41 | dc.profile= profile |
| 42 | 42 | ||
| 43 | -baidu.ak=AYiBOs3f9qBQFhdKFsaboX6CfObmKwRP | ||
| 44 | \ No newline at end of file | 43 | \ No newline at end of file |
| 44 | +baidu.ak=AYiBOs3f9qBQFhdKFsaboX6CfObmKwRP | ||
| 45 | +passengerFlow.url = http://127.0.0.1:9999/images/ | ||
| 45 | \ No newline at end of file | 46 | \ No newline at end of file |
src/main/resources/static/assets/img/ss.jpg
0 → 100644
8.34 KB
src/main/resources/static/assets/img/ss.png
0 → 100644
2.03 KB
src/main/resources/static/assets/img/yb.jpg
0 → 100644
8.96 KB
src/main/resources/static/assets/img/yb.png
0 → 100644
3.21 KB
src/main/resources/static/assets/img/yj.jpg
0 → 100644
8.99 KB
src/main/resources/static/assets/img/yj.png
0 → 100644
2.74 KB
src/main/resources/static/pages/permission/authorize_all/user_auth.html
| @@ -79,6 +79,7 @@ | @@ -79,6 +79,7 @@ | ||
| 79 | <li><label><input class="uk-checkbox" type="checkbox" data-event="fbzdzx_config"> 翻班与自动执行</label></li> | 79 | <li><label><input class="uk-checkbox" type="checkbox" data-event="fbzdzx_config"> 翻班与自动执行</label></li> |
| 80 | <li><label><input class="uk-checkbox" type="checkbox" data-event="tts_config"> TTS</label></li> | 80 | <li><label><input class="uk-checkbox" type="checkbox" data-event="tts_config"> TTS</label></li> |
| 81 | <li><label><input class="uk-checkbox" type="checkbox" data-event="signal_state"> 信号标记</label></li> | 81 | <li><label><input class="uk-checkbox" type="checkbox" data-event="signal_state"> 信号标记</label></li> |
| 82 | + <li><label><input class="uk-checkbox" type="checkbox" data-event="kl_config"> 客流信息</label></li> | ||
| 82 | </ul> | 83 | </ul> |
| 83 | </div> | 84 | </div> |
| 84 | <div> | 85 | <div> |
src/main/resources/static/real_control_v2/css/main.css
| @@ -220,6 +220,15 @@ svg.line-chart g.num-number > text { | @@ -220,6 +220,15 @@ svg.line-chart g.num-number > text { | ||
| 220 | z-index: 99; | 220 | z-index: 99; |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | +svg.line-chart g.gps-wrap > image[updown="0"] { | ||
| 224 | + width:17px; | ||
| 225 | + height:15px; | ||
| 226 | + z-index: 0; | ||
| 227 | +} | ||
| 228 | +svg.line-chart g.gps-wrap > image[updown="1"] { | ||
| 229 | + width:17px; | ||
| 230 | + height:15px; | ||
| 231 | +} | ||
| 223 | svg.line-chart g.gps-wrap > rect[updown="0"] { | 232 | svg.line-chart g.gps-wrap > rect[updown="0"] { |
| 224 | stroke: rgb(62, 80, 179); | 233 | stroke: rgb(62, 80, 179); |
| 225 | fill: rgb(62, 80, 179); | 234 | fill: rgb(62, 80, 179); |
| @@ -997,64 +1006,6 @@ option.oil_station_opt { | @@ -997,64 +1006,6 @@ option.oil_station_opt { | ||
| 997 | margin-right: 5px; | 1006 | margin-right: 5px; |
| 998 | } | 1007 | } |
| 999 | 1008 | ||
| 1000 | - | ||
| 1001 | -.multi_plat_msg_pops .tests { | ||
| 1002 | - display: block; | ||
| 1003 | -} | ||
| 1004 | - | ||
| 1005 | - | ||
| 1006 | -/** 智能调度 */ | ||
| 1007 | -.multi_plat_msg_pop_zndd { | ||
| 1008 | - position: absolute; | ||
| 1009 | - right: 12px; | ||
| 1010 | - bottom: 12px; | ||
| 1011 | - z-index: 99; | ||
| 1012 | -} | ||
| 1013 | - | ||
| 1014 | -/** 催發 */ | ||
| 1015 | -.multi_plat_msg_pop_cf { | ||
| 1016 | - position: absolute; | ||
| 1017 | - right: 12px; | ||
| 1018 | - bottom: 12px; | ||
| 1019 | - z-index: 99; | ||
| 1020 | - background: #ffffff | ||
| 1021 | -} | ||
| 1022 | - | ||
| 1023 | - .multi_plat_msg_pops { | ||
| 1024 | - color: grey; | ||
| 1025 | - margin: 7px 0; | ||
| 1026 | - padding: 7px 12px; | ||
| 1027 | - cursor: pointer; | ||
| 1028 | - min-width: 200px; | ||
| 1029 | - box-sizing: border-box; | ||
| 1030 | - min-height: 60px; | ||
| 1031 | - border-radius: 5px; | ||
| 1032 | - background-color: #e0effd; | ||
| 1033 | -} | ||
| 1034 | - | ||
| 1035 | - | ||
| 1036 | -.multi_plat_msg_pops .desc { | ||
| 1037 | - display: block; | ||
| 1038 | - font-size: 12px; | ||
| 1039 | - color: #ff9d9d; | ||
| 1040 | - text-align: right; | ||
| 1041 | - margin-right: 5px; | ||
| 1042 | -} | ||
| 1043 | -.multi_plat_msg_pops .time { | ||
| 1044 | - display: block; | ||
| 1045 | - font-size: 12px; | ||
| 1046 | - color: darkgray; | ||
| 1047 | - margin-right: 5px; | ||
| 1048 | -} | ||
| 1049 | -.multi_plat_msg_pops .reminder { | ||
| 1050 | - display: block; | ||
| 1051 | - font-size: 15px; | ||
| 1052 | - color: red; | ||
| 1053 | - margin-right: 5px; | ||
| 1054 | -} | ||
| 1055 | - | ||
| 1056 | - | ||
| 1057 | - | ||
| 1058 | /** 嵌入表单modal滚动条样式 */ | 1009 | /** 嵌入表单modal滚动条样式 */ |
| 1059 | #formFragmentModal::-webkit-scrollbar { | 1010 | #formFragmentModal::-webkit-scrollbar { |
| 1060 | width: 10px; | 1011 | width: 10px; |
src/main/resources/static/real_control_v2/fragments/home/tooltip.html
| @@ -51,6 +51,18 @@ | @@ -51,6 +51,18 @@ | ||
| 51 | <div> | 51 | <div> |
| 52 | 预计 {{expectStopTime}} 分钟到达终点</div> | 52 | 预计 {{expectStopTime}} 分钟到达终点</div> |
| 53 | {{/if}} | 53 | {{/if}} |
| 54 | + {{if kl !=null}} | ||
| 55 | + <div><span class="field">人数:</span>{{kl.num}}</div> | ||
| 56 | + {{/if}} | ||
| 57 | + {{if kl !=null && kl.num <= 5}} | ||
| 58 | + <div><span class="field">状态:</span><a href="javascript:;" style="color:green" onclick="javascript:gb_map_play_back.showPhoto('{{kl.photo}}');">舒适</a></div> | ||
| 59 | + {{/if}} | ||
| 60 | + {{if kl !=null && kl.num > 5 && kl.num <= 10}} | ||
| 61 | + <div><span class="field">状态:</span><a href="javascript:;" style="color:chocolate" onclick="javascript:gb_map_play_back.showPhoto('{{kl.photo}}');">一般</a></div> | ||
| 62 | + {{/if}} | ||
| 63 | + {{if kl !=null && kl.num > 10}} | ||
| 64 | + <div><span class="field">状态:</span><a href="javascript:;" style="color:red" onclick="javascript:gb_map_play_back.showPhoto('{{kl.photo}}');">拥挤</a></div> | ||
| 65 | + {{/if}} | ||
| 54 | </div> | 66 | </div> |
| 55 | 67 | ||
| 56 | <div class="tip_map_wrap"></div> | 68 | <div class="tip_map_wrap"></div> |
src/main/resources/static/real_control_v2/fragments/north/nav/kl_config.html
0 → 100644
| 1 | +<div class="uk-modal ct-form-modal" id="kl_config-modal"> | ||
| 2 | + <div class="uk-modal-dialog" style="width: 530px;"> | ||
| 3 | + <a href="" class="uk-modal-close uk-close"></a> | ||
| 4 | + <div class="uk-modal-header"> | ||
| 5 | + <h2>客流显示设置</h2></div> | ||
| 6 | + | ||
| 7 | + <p style="border-bottom: 1px solid #efefef;color: grey;padding-bottom: 9px;"> | ||
| 8 | + <small> | ||
| 9 | + <i class="uk-icon-question-circle"> </i> | ||
| 10 | + 设置项将会保存在本地客户端,清理缓存和更换电脑会重置.</small> | ||
| 11 | + </p> | ||
| 12 | + <form class="uk-form uk-form-horizontal"> | ||
| 13 | + <div class="uk-grid"> | ||
| 14 | + <div class="uk-width-2-3 uk-container-center"> | ||
| 15 | + <div class="uk-form-row"> | ||
| 16 | + <label class="uk-form-label">是否启用</label> | ||
| 17 | + <div class="uk-form-controls"> | ||
| 18 | + <select name="enable"> | ||
| 19 | + <option value="1">启用</option> | ||
| 20 | + <option value="0">禁用</option> | ||
| 21 | + </select> | ||
| 22 | + </div> | ||
| 23 | + </div> | ||
| 24 | + </div> | ||
| 25 | + </div> | ||
| 26 | + | ||
| 27 | + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;"> | ||
| 28 | + <button type="button" class="uk-button uk-modal-close">取消</button> | ||
| 29 | + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> 保存</button> | ||
| 30 | + </div> | ||
| 31 | + </form> | ||
| 32 | + </div> | ||
| 33 | + | ||
| 34 | + <script> | ||
| 35 | + var storage = window.localStorage; | ||
| 36 | + (function() { | ||
| 37 | + var modal = '#kl_config-modal'; | ||
| 38 | + var f = $('form', modal); | ||
| 39 | + | ||
| 40 | + $(modal).on('init', function(e, data) { | ||
| 41 | + e.stopPropagation(); | ||
| 42 | + var locStatus=0; | ||
| 43 | + if( storage.getItem("kl_state_enable")==1){ | ||
| 44 | + locStatus=1; | ||
| 45 | + } | ||
| 46 | + $('[name=enable]', f).val(locStatus); | ||
| 47 | + }); | ||
| 48 | + | ||
| 49 | + f.formValidation(gb_form_validation_opts); | ||
| 50 | + f.on('success.form.fv', function(e) { | ||
| 51 | + e.preventDefault(); | ||
| 52 | + var data = $(this).serializeJSON(); | ||
| 53 | + storage.setItem("kl_state_enable", data.enable); | ||
| 54 | + UIkit.modal(modal).hide(); | ||
| 55 | + }); | ||
| 56 | + | ||
| 57 | + })(); | ||
| 58 | + </script> | ||
| 59 | +</div> | ||
| 0 | \ No newline at end of file | 60 | \ No newline at end of file |
src/main/resources/static/real_control_v2/js/data/json/north_toolbar.json
src/main/resources/static/real_control_v2/js/north/toolbar.js
| @@ -122,6 +122,9 @@ var gb_northToolbar = (function () { | @@ -122,6 +122,9 @@ var gb_northToolbar = (function () { | ||
| 122 | line_config: function () { | 122 | line_config: function () { |
| 123 | open_modal('/real_control_v2/fragments/north/nav/line_config/line_config.html', {}, modal_opts); | 123 | open_modal('/real_control_v2/fragments/north/nav/line_config/line_config.html', {}, modal_opts); |
| 124 | }, | 124 | }, |
| 125 | + kl_config: function () { | ||
| 126 | + open_modal('/real_control_v2/fragments/north/nav/kl_config.html', {}, modal_opts); | ||
| 127 | + }, | ||
| 125 | // bcgxsj_config: function () { | 128 | // bcgxsj_config: function () { |
| 126 | // open_modal('/real_control_v2/fragments/north/nav/line_config/bcgxsj_config.html', {}, modal_opts); | 129 | // open_modal('/real_control_v2/fragments/north/nav/line_config/bcgxsj_config.html', {}, modal_opts); |
| 127 | // }, | 130 | // }, |
src/main/resources/static/real_control_v2/js/utils/svg_chart.js
| @@ -220,6 +220,23 @@ var gb_svg_chart = (function () { | @@ -220,6 +220,23 @@ var gb_svg_chart = (function () { | ||
| 220 | 220 | ||
| 221 | return gps.upDown == 0 ? cy - 22 - (index * 17) : cy + 6 + (index * 19); | 221 | return gps.upDown == 0 ? cy - 22 - (index * 17) : cy + 6 + (index * 19); |
| 222 | }, | 222 | }, |
| 223 | + gx2 = function (gps, svg, wrapId) { | ||
| 224 | + var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); | ||
| 225 | + if (!circle) return -100; | ||
| 226 | + | ||
| 227 | + var x = circle.attr('cx') - 16.5, | ||
| 228 | + s = circle_spaces[wrapId] / 2; | ||
| 229 | + // console.log('ss', gps.lineId + '=' + s); | ||
| 230 | + //s = 5; | ||
| 231 | + if(gps['instation']==0) | ||
| 232 | + x = (gps['upDown']==0?x+s:x-s); | ||
| 233 | + if(gps['abnormalClaszz']==false){//为越速掉设置偏移 | ||
| 234 | + x+=30; | ||
| 235 | + }else { | ||
| 236 | + x+=41; | ||
| 237 | + } | ||
| 238 | + return x; | ||
| 239 | + }, | ||
| 223 | ups_gps = function (d) { | 240 | ups_gps = function (d) { |
| 224 | return d.gpsUps; | 241 | return d.gpsUps; |
| 225 | }, | 242 | }, |
| @@ -276,11 +293,54 @@ var gb_svg_chart = (function () { | @@ -276,11 +293,54 @@ var gb_svg_chart = (function () { | ||
| 276 | //update tip position | 293 | //update tip position |
| 277 | gb_svg_tooltip.update(e); | 294 | gb_svg_tooltip.update(e); |
| 278 | }, | 295 | }, |
| 296 | + gps_update_point2 = function (e, svg, wrapId,state) { | ||
| 297 | + var x,e1; | ||
| 298 | + e1 = e; | ||
| 299 | + if(animation) | ||
| 300 | + e1 = e.transition(); | ||
| 301 | + e1.attr('x', function (d) { | ||
| 302 | + x = gx2(d, svg, wrapId); | ||
| 303 | + if(x == -100) | ||
| 304 | + $(this).css('transition-duration', 0).hide(); | ||
| 305 | + else | ||
| 306 | + $(this).show();//找不到停靠点,直接隐藏 | ||
| 307 | + if(state==0) | ||
| 308 | + $(this).css('transition-duration', 0).hide(); | ||
| 309 | + return x; | ||
| 310 | + }) | ||
| 311 | + .attr('y', function (d) { | ||
| 312 | + return gy(d, svg); | ||
| 313 | + }) | ||
| 314 | + .attr('updown', function (d) { | ||
| 315 | + return d.upDown; | ||
| 316 | + }) | ||
| 317 | + .attr('xlink:href', function (d) { | ||
| 318 | + var img =''; | ||
| 319 | + if(d['kl'] != undefined && d['kl']['num']<=5){ | ||
| 320 | + img ='/assets/img/ss.png'; | ||
| 321 | + }else if(d['kl'] != undefined && d['kl']['num']>5 && d['kl']['num']<=10){ | ||
| 322 | + img ='/assets/img/yb.png'; | ||
| 323 | + }else if(d['kl'] != undefined && d['kl']['num']>10){ | ||
| 324 | + img ='/assets/img/yj.png'; | ||
| 325 | + } | ||
| 326 | + return img; | ||
| 327 | + }); | ||
| 328 | + e.classed({'abnormal': function (d) { | ||
| 329 | + return d.abnormalClaszz; | ||
| 330 | + }, 'offline': function (d) { | ||
| 331 | + return d['abnormalStatus']=='offline'; | ||
| 332 | + }}); | ||
| 333 | + //update tip position | ||
| 334 | + gb_svg_tooltip.update(e); | ||
| 335 | + }, | ||
| 279 | rct_id = function (d) { | 336 | rct_id = function (d) { |
| 280 | return 'rct_' + d.deviceId; | 337 | return 'rct_' + d.deviceId; |
| 281 | }, | 338 | }, |
| 282 | tx_id = function (d) { | 339 | tx_id = function (d) { |
| 283 | return 'tx_' + d.deviceId; | 340 | return 'tx_' + d.deviceId; |
| 341 | + }, | ||
| 342 | + img_id = function (d) { | ||
| 343 | + return 'img_' + d.deviceId; | ||
| 284 | }; | 344 | }; |
| 285 | 345 | ||
| 286 | var setGps = function (lineCode) { | 346 | var setGps = function (lineCode) { |
| @@ -347,6 +407,14 @@ var gb_svg_chart = (function () { | @@ -347,6 +407,14 @@ var gb_svg_chart = (function () { | ||
| 347 | ts.enter().append('text').attr('_id', tx_id); | 407 | ts.enter().append('text').attr('_id', tx_id); |
| 348 | ts.text(g_text) | 408 | ts.text(g_text) |
| 349 | gps_update_point(ts, svg, wrapId); | 409 | gps_update_point(ts, svg, wrapId); |
| 410 | + | ||
| 411 | + var imageState=0; | ||
| 412 | + if(window.localStorage.getItem("kl_state_enable") == 1){ | ||
| 413 | + imageState=1; | ||
| 414 | + } | ||
| 415 | + var imgs = gps_cont.selectAll('image').data(data, gps_key); | ||
| 416 | + imgs.enter().append('image').attr('_id', img_id); | ||
| 417 | + gps_update_point2(imgs, svg, wrapId,imageState); | ||
| 350 | }; | 418 | }; |
| 351 | 419 | ||
| 352 | var marker_clusterer = function (svg, lineCode) { | 420 | var marker_clusterer = function (svg, lineCode) { |
| @@ -375,7 +443,7 @@ var gb_svg_chart = (function () { | @@ -375,7 +443,7 @@ var gb_svg_chart = (function () { | ||
| 375 | var svg = d3.select(svg); | 443 | var svg = d3.select(svg); |
| 376 | //hide old element | 444 | //hide old element |
| 377 | $.each(gpsArr, function (i, d) { | 445 | $.each(gpsArr, function (i, d) { |
| 378 | - $('rect[_id=rct_' + d + '],text[_id=tx_' + d + ']').attr('class', 'merge_hide'); | 446 | + $('rect[_id=rct_' + d + '],text[_id=tx_' + d + '],image[_id=img_' + d + ']').attr('class', 'merge_hide'); |
| 379 | }); | 447 | }); |
| 380 | 448 | ||
| 381 | var mergerG = svg.selectAll('g.marker-clusterer').append('g').attr('_id', 'merger_' + stopNo) | 449 | var mergerG = svg.selectAll('g.marker-clusterer').append('g').attr('_id', 'merger_' + stopNo) |
src/main/resources/static/real_control_v2/mapmonitor/fragments/map_infowindow.html
| @@ -33,10 +33,17 @@ | @@ -33,10 +33,17 @@ | ||
| 33 | <p>经度:{{lon}}</p> | 33 | <p>经度:{{lon}}</p> |
| 34 | <p>纬度:{{lat}}</p> | 34 | <p>纬度:{{lat}}</p> |
| 35 | 35 | ||
| 36 | - <p class="date-str">{{dateStr}}</p> | ||
| 37 | - <hr> | ||
| 38 | - {{if expectStopTime!=null}} | ||
| 39 | - <a href="javascript:;" style="color: #07D;margin-right: 7px;">预计 {{expectStopTime}} 分钟到达终点</a> | 36 | + {{if kl !=null}} |
| 37 | + <p>人数:{{kl.num}}</p> | ||
| 38 | + {{/if}} | ||
| 39 | + {{if kl !=null && kl.num <= 5}} | ||
| 40 | + <p>状态:<a href="javascript:;" style="color:green" onclick="javascript:gb_map_play_back.showPhoto('{{kl.photo}}');">舒适</a></p> | ||
| 41 | + {{/if}} | ||
| 42 | + {{if kl !=null && kl.num > 5 && kl.num <= 10}} | ||
| 43 | + <p>状态:<a href="javascript:;" style="color:chocolate" onclick="javascript:gb_map_play_back.showPhoto('{{kl.photo}}');">一般</a></p> | ||
| 44 | + {{/if}} | ||
| 45 | + {{if kl !=null && kl.num > 10}} | ||
| 46 | + <p>状态:<a href="javascript:;" style="color:red" onclick="javascript:gb_map_play_back.showPhoto('{{kl.photo}}');">拥挤</a></p> | ||
| 40 | {{/if}} | 47 | {{/if}} |
| 41 | <a href="javascript:;" style="float: left;" onclick="javascript:window.open('http://58.34.52.130:4490/transport_server/dvr_monitor2.html?userid=4&zbh={{nbbm}}');">DVR</a> | 48 | <a href="javascript:;" style="float: left;" onclick="javascript:window.open('http://58.34.52.130:4490/transport_server/dvr_monitor2.html?userid=4&zbh={{nbbm}}');">DVR</a> |
| 42 | <a href="W9:{{dvrcode}}@139.196.29.203?method=call" style="margin-left: 50px;" >拨打电话</a> | 49 | <a href="W9:{{dvrcode}}@139.196.29.203?method=call" style="margin-left: 50px;" >拨打电话</a> |
src/main/resources/static/real_control_v2/mapmonitor/js/playback.js
| @@ -105,10 +105,17 @@ var gb_map_play_back = (function () { | @@ -105,10 +105,17 @@ var gb_map_play_back = (function () { | ||
| 105 | function base64(string) { | 105 | function base64(string) { |
| 106 | return window.btoa(unescape(encodeURIComponent(string))); | 106 | return window.btoa(unescape(encodeURIComponent(string))); |
| 107 | } | 107 | } |
| 108 | - | 108 | + var showPhoto = function (photo) { |
| 109 | + console.log("showPhoto"); | ||
| 110 | + var lightbox = UIkit.lightbox.create([ | ||
| 111 | + {source: photo,type:'image'} | ||
| 112 | + ], {keyboard: false}); | ||
| 113 | + lightbox.show(); | ||
| 114 | + }; | ||
| 109 | return { | 115 | return { |
| 110 | initParams: initParams, | 116 | initParams: initParams, |
| 111 | listToExcel: listToExcel, | 117 | listToExcel: listToExcel, |
| 112 | - setParam: setParam | 118 | + setParam: setParam, |
| 119 | + showPhoto:showPhoto | ||
| 113 | } | 120 | } |
| 114 | })(); | 121 | })(); |
| 115 | \ No newline at end of file | 122 | \ No newline at end of file |