Commit 1c14c85c4185434861192d9e813f562d8c3eb8fc
1 parent
9e555437
1.
Showing
3 changed files
with
76 additions
and
58 deletions
src/main/java/com/bsth/data/gpsdata_v2/DataHandleProcess.java
| @@ -7,6 +7,7 @@ import com.bsth.data.gpsdata_v2.handlers.*; | @@ -7,6 +7,7 @@ import com.bsth.data.gpsdata_v2.handlers.*; | ||
| 7 | import com.bsth.email.SendEmailController; | 7 | import com.bsth.email.SendEmailController; |
| 8 | import com.bsth.email.entity.EmailBean; | 8 | import com.bsth.email.entity.EmailBean; |
| 9 | import com.bsth.util.IpUtils; | 9 | import com.bsth.util.IpUtils; |
| 10 | +import com.fasterxml.jackson.databind.JsonNode; | ||
| 10 | import com.fasterxml.jackson.databind.ObjectMapper; | 11 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 11 | import com.google.common.collect.ArrayListMultimap; | 12 | import com.google.common.collect.ArrayListMultimap; |
| 12 | import org.apache.commons.lang3.StringUtils; | 13 | import org.apache.commons.lang3.StringUtils; |
| @@ -94,10 +95,10 @@ public class DataHandleProcess { | @@ -94,10 +95,10 @@ public class DataHandleProcess { | ||
| 94 | dataListMap.putAll(threadIndex, multimap.get(deviceList.get(i))); | 95 | dataListMap.putAll(threadIndex, multimap.get(deviceList.get(i))); |
| 95 | } | 96 | } |
| 96 | Set<Integer> ks = dataListMap.keySet(); | 97 | Set<Integer> ks = dataListMap.keySet(); |
| 97 | - logger.info("analyse gps size: " + list.size() + ", ks: " + ks.size()); | 98 | + logger.info("gps: " + JSON.toJSONString(list)); |
| 98 | CountDownLatch count = new CountDownLatch(ks.size()); | 99 | CountDownLatch count = new CountDownLatch(ks.size()); |
| 99 | 100 | ||
| 100 | - logger.info(JSON.toJSONString(ks)); | 101 | + logger.info("ks: " + JSON.toJSONString(ks)); |
| 101 | for (Integer index : ks) { | 102 | for (Integer index : ks) { |
| 102 | threadPool.execute(new SignalHandleThread(dataListMap.get(index), count)); | 103 | threadPool.execute(new SignalHandleThread(dataListMap.get(index), count)); |
| 103 | } | 104 | } |
src/main/java/com/bsth/data/gpsdata_v2/entity/GpsEntity.java
| @@ -118,6 +118,11 @@ public class GpsEntity implements Cloneable{ | @@ -118,6 +118,11 @@ public class GpsEntity implements Cloneable{ | ||
| 118 | */ | 118 | */ |
| 119 | private int energy = -1; | 119 | private int energy = -1; |
| 120 | 120 | ||
| 121 | + /** | ||
| 122 | + * 站内外 -1无效 0站外 1站内 | ||
| 123 | + */ | ||
| 124 | + private int inOrOutStation; | ||
| 125 | + | ||
| 121 | public Object clone() { | 126 | public Object clone() { |
| 122 | try { | 127 | try { |
| 123 | return super.clone(); | 128 | return super.clone(); |
| @@ -418,4 +423,12 @@ public class GpsEntity implements Cloneable{ | @@ -418,4 +423,12 @@ public class GpsEntity implements Cloneable{ | ||
| 418 | public void setEnergy(int energy) { | 423 | public void setEnergy(int energy) { |
| 419 | this.energy = energy; | 424 | this.energy = energy; |
| 420 | } | 425 | } |
| 426 | + | ||
| 427 | + public int getInOrOutStation() { | ||
| 428 | + return inOrOutStation; | ||
| 429 | + } | ||
| 430 | + | ||
| 431 | + public void setInOrOutStation(int inOrOutStation) { | ||
| 432 | + this.inOrOutStation = inOrOutStation; | ||
| 433 | + } | ||
| 421 | } | 434 | } |
src/main/java/com/bsth/data/gpsdata_v2/handlers/StationInsideProcess.java
| 1 | -package com.bsth.data.gpsdata_v2.handlers; | ||
| 2 | - | ||
| 3 | -import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | ||
| 4 | -import com.bsth.data.gpsdata_v2.cache.GpsCacheData; | ||
| 5 | -import com.bsth.data.gpsdata_v2.entity.GpsEntity; | ||
| 6 | -import com.bsth.data.gpsdata_v2.entity.StationRoute; | ||
| 7 | -import com.bsth.data.gpsdata_v2.utils.GeoUtils; | ||
| 8 | -import org.springframework.stereotype.Component; | ||
| 9 | - | ||
| 10 | -import java.util.List; | ||
| 11 | - | ||
| 12 | -/** | ||
| 13 | - * 站内 场内判定 | ||
| 14 | - * Created by panzhao on 2017/11/16. | ||
| 15 | - */ | ||
| 16 | -@Component | ||
| 17 | -public class StationInsideProcess { | ||
| 18 | - | ||
| 19 | - public void process(GpsEntity gps) { | ||
| 20 | - //是否在场内 | ||
| 21 | - String parkCode = GeoUtils.gpsInCarpark(gps); | ||
| 22 | - | ||
| 23 | - if (parkCode != null) { | ||
| 24 | - gps.setInstation(2); | ||
| 25 | - gps.setStopNo(parkCode); | ||
| 26 | - gps.setCarparkNo(parkCode); | ||
| 27 | - } | ||
| 28 | - | ||
| 29 | - //是否在站内 | ||
| 30 | - List<StationRoute> srs = GeoCacheData.getStationRoute(gps.getLineId(), gps.getUpDown()); | ||
| 31 | - StationRoute station = GeoUtils.gpsInStation(gps, srs); | ||
| 32 | - if (station != null) { | ||
| 33 | - gps.setInstation(1); | ||
| 34 | - gps.setStopNo(station.getCode()); | ||
| 35 | - gps.setStation(station); | ||
| 36 | - } | ||
| 37 | - | ||
| 38 | - //是否在进站前置围栏内 | ||
| 39 | - String premiseCode = GeoUtils.gpsInPremiseGeo(gps); | ||
| 40 | - gps.setPremiseCode(premiseCode); | ||
| 41 | - | ||
| 42 | - //上一个点位 | ||
| 43 | - GpsEntity prev = GpsCacheData.getPrev(gps); | ||
| 44 | - | ||
| 45 | - if (null != prev) { | ||
| 46 | - //继承前置围栏状态 | ||
| 47 | - if (null == premiseCode && null != prev.getPremiseCode()) | ||
| 48 | - gps.setPremiseCode(prev.getPremiseCode()); | ||
| 49 | - | ||
| 50 | - //在场,站外 | ||
| 51 | - if (gps.getInstation() == 0) { | ||
| 52 | - gps.setStopNo(prev.getStopNo());//继承上一个点的站点编码 | ||
| 53 | - } | ||
| 54 | - } | ||
| 55 | - } | ||
| 56 | -} | 1 | +package com.bsth.data.gpsdata_v2.handlers; |
| 2 | + | ||
| 3 | +import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | ||
| 4 | +import com.bsth.data.gpsdata_v2.cache.GpsCacheData; | ||
| 5 | +import com.bsth.data.gpsdata_v2.entity.GpsEntity; | ||
| 6 | +import com.bsth.data.gpsdata_v2.entity.StationRoute; | ||
| 7 | +import com.bsth.data.gpsdata_v2.utils.GeoUtils; | ||
| 8 | +import com.bsth.entity.Station; | ||
| 9 | +import org.springframework.stereotype.Component; | ||
| 10 | + | ||
| 11 | +import java.util.List; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 站内 场内判定 | ||
| 15 | + * Created by panzhao on 2017/11/16. | ||
| 16 | + */ | ||
| 17 | +@Component | ||
| 18 | +public class StationInsideProcess { | ||
| 19 | + | ||
| 20 | + public void process(GpsEntity gps) { | ||
| 21 | + //是否在场内 | ||
| 22 | + String parkCode = GeoUtils.gpsInCarpark(gps); | ||
| 23 | + | ||
| 24 | + if (parkCode != null) { | ||
| 25 | + gps.setInstation(2); | ||
| 26 | + gps.setCarparkNo(parkCode); | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + //是否在站内 | ||
| 30 | + List<StationRoute> srs = GeoCacheData.getStationRoute(gps.getLineId(), gps.getUpDown()); | ||
| 31 | + StationRoute station = null; | ||
| 32 | + for (StationRoute sr : srs) { | ||
| 33 | + if (sr.getCode().equals(gps.getStopNo())) { | ||
| 34 | + station = sr; | ||
| 35 | + } | ||
| 36 | + } | ||
| 37 | + if (gps.getInOrOutStation() == 1) { | ||
| 38 | + gps.setInstation(1); | ||
| 39 | + gps.setStation(station); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + //是否在进站前置围栏内 | ||
| 43 | + String premiseCode = GeoUtils.gpsInPremiseGeo(gps); | ||
| 44 | + gps.setPremiseCode(premiseCode); | ||
| 45 | + | ||
| 46 | + //上一个点位 | ||
| 47 | + GpsEntity prev = GpsCacheData.getPrev(gps); | ||
| 48 | + | ||
| 49 | + if (null != prev) { | ||
| 50 | + //继承前置围栏状态 | ||
| 51 | + if (null == premiseCode && null != prev.getPremiseCode()) | ||
| 52 | + gps.setPremiseCode(prev.getPremiseCode()); | ||
| 53 | + | ||
| 54 | + //在场,站外 | ||
| 55 | + if (gps.getInstation() == 0) { | ||
| 56 | + gps.setStopNo(prev.getStopNo());//继承上一个点的站点编码 | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | +} |