Commit 1c14c85c4185434861192d9e813f562d8c3eb8fc

Authored by 王通
1 parent 9e555437

1.

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 +}