Commit 5308e80a7a546560378d0a60e862a345bcc395c3

Authored by 潘钊
1 parent ac4452a2

update...

src/main/java/com/bsth/ServiceStateTest.java deleted 100644 → 0
1 -package com.bsth;  
2 -  
3 -public class ServiceStateTest {  
4 -  
5 - public static void main(String[] args) {  
6 - System.out.println("运营状态:" + getService(603979776));  
7 - System.out.println("上下行:" + getUpOrDown(603979776));  
8 - }  
9 -  
10 - /**  
11 - * 获取运营状态  
12 - *  
13 - * @return -1无效 0运营 1未运营  
14 - */  
15 - public static byte getService(long serviceState) {  
16 - if ((serviceState & 0x00020000) == 0x00020000 || (serviceState & 0x80000000) == 0x80000000)  
17 - return -1;  
18 - return (byte) (((serviceState & 0x02000000) == 0x02000000) ? 1 : 0);  
19 - }  
20 -  
21 - /**  
22 - * 王通 2016/6/29 9:23:24 获取车辆线路上下行  
23 - *  
24 - * @return -1无效 0上行 1下行  
25 - */  
26 - public static byte getUpOrDown(long serviceState) {  
27 - if ((serviceState & 0x00020000) == 0x00020000 || (serviceState & 0x80000000) == 0x80000000  
28 - || (serviceState & 0x01000000) == 0x01000000 || (serviceState & 0x08000000) == 0x08000000)  
29 - return -1;  
30 - return (byte) (((serviceState & 0x10000000) == 0x10000000) ? 1 : 0);  
31 - }  
32 -}  
src/main/java/com/bsth/XDApplication.java 0 → 100644
  1 +package com.bsth;
  2 +
  3 +import com.bsth.data.BasicData;
  4 +import com.bsth.data.ThreadMonotor;
  5 +import com.bsth.data.car_out_info.UpdateDBThread;
  6 +import com.bsth.data.directive.DirectivesPstThread;
  7 +import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
  8 +import com.bsth.data.gpsdata.thread.OfflineMonitorThread;
  9 +import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
  10 +import com.bsth.data.schedule.thread.CalcOilThread;
  11 +import com.bsth.data.schedule.thread.SchedulePstThread;
  12 +import com.bsth.data.schedule.thread.ScheduleRefreshThread;
  13 +import com.bsth.data.schedule.thread.SubmitToTrafficManage;
  14 +import com.bsth.util.DateUtils;
  15 +import com.bsth.util.Tools;
  16 +import org.slf4j.Logger;
  17 +import org.slf4j.LoggerFactory;
  18 +import org.springframework.beans.factory.annotation.Autowired;
  19 +import org.springframework.boot.CommandLineRunner;
  20 +import org.springframework.stereotype.Component;
  21 +
  22 +import java.util.concurrent.ScheduledExecutorService;
  23 +import java.util.concurrent.TimeUnit;
  24 +
  25 +/**
  26 + * 线调大部分服务都在这里启动
  27 + * Created by panzhao on 2017/5/14.
  28 + */
  29 +@Component
  30 +public class XDApplication implements CommandLineRunner {
  31 +
  32 + Logger log = LoggerFactory.getLogger(this.getClass());
  33 +
  34 + @Autowired
  35 + BasicData.BasicDataLoader basicDataLoader;
  36 + @Autowired
  37 + UpdateDBThread fcxxUpdateThread;
  38 + @Autowired
  39 + GpsDataLoaderThread gpsDataLoader;
  40 + @Autowired
  41 + OfflineMonitorThread offlineMonitorThread;
  42 + @Autowired
  43 + ScheduleRefreshThread scheduleRefreshThread;
  44 + @Autowired
  45 + SchedulePstThread schedulePstThread;
  46 + @Autowired
  47 + ScheduleLateThread scheduleLateThread;
  48 + @Autowired
  49 + SubmitToTrafficManage submitToTrafficManage;
  50 + @Autowired
  51 + CalcOilThread calcOilThread;
  52 + @Autowired
  53 + DirectivesPstThread directivesPstThread;
  54 + @Autowired
  55 + ThreadMonotor threadMonotor;
  56 +
  57 + private static long timeDiff;
  58 +
  59 + static {
  60 + timeDiff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();
  61 + if (timeDiff < 0)
  62 + timeDiff += (1000 * 60 * 60 * 24);
  63 + }
  64 +
  65 + @Override
  66 + public void run(String... strings) throws Exception {
  67 + try {
  68 + Tools tools = new Tools("application.properties");
  69 + String environment = tools.getValue("spring.profiles.active");
  70 + //预先加载基础的对照数据
  71 + basicDataLoader.loadAllData();
  72 + switch (environment){
  73 + case "dev":
  74 + devInit();
  75 + break;
  76 + case "prod":
  77 + prodInit();
  78 + break;
  79 + }
  80 + }catch (Exception e){
  81 + log.error("线调后台启动出现异常!!", e);
  82 + System.exit(1);
  83 + }
  84 + }
  85 +
  86 + public void devInit(){
  87 + ScheduledExecutorService sexec = Application.mainServices;
  88 + //抓取GPS数据
  89 + //sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
  90 + //实际排班更新线程
  91 + //sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
  92 + }
  93 +
  94 + public void prodInit(){
  95 + ScheduledExecutorService sexec = Application.mainServices;
  96 + //发车信息
  97 + sexec.scheduleWithFixedDelay(fcxxUpdateThread, 60, 40, TimeUnit.SECONDS);
  98 + //抓取GPS数据
  99 + sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
  100 + //检查设备掉离线
  101 + sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);
  102 + //实际排班更新线程
  103 + sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
  104 + //实际排班延迟入库线程
  105 + sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
  106 + //检查班次误点
  107 + sexec.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS);
  108 + //调度指令延迟入库
  109 + sexec.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);
  110 +
  111 + //运管处静态数据提交
  112 + log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
  113 + sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
  114 + //计算油、公里加注
  115 + sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
  116 +
  117 +
  118 + //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
  119 + sexec.scheduleWithFixedDelay(threadMonotor, 120, 60, TimeUnit.SECONDS);
  120 + }
  121 +}
src/main/java/com/bsth/data/BasicData.java
@@ -154,8 +154,6 @@ public class BasicData implements CommandLineRunner { @@ -154,8 +154,6 @@ public class BasicData implements CommandLineRunner {
154 loadLineInfo(); 154 loadLineInfo();
155 //车辆和线路映射信息 155 //车辆和线路映射信息
156 loadNbbm2LineInfo(); 156 loadNbbm2LineInfo();
157 - //站点路由信息  
158 - //loadStationRouteInfo();  
159 //人员信息 157 //人员信息
160 loadPersonnelInfo(); 158 loadPersonnelInfo();
161 //公司信息 159 //公司信息
src/main/java/com/bsth/data/car_out_info/CarOutInfo.java deleted 100644 → 0
1 -package com.bsth.data.car_out_info;  
2 -  
3 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
4 -  
5 -import java.util.List;  
6 -  
7 -/**  
8 - * Created by panzhao on 2017/5/7.  
9 - */  
10 -public interface CarOutInfo {  
11 -  
12 - void updateAll();  
13 -  
14 - void update(String lineCode);  
15 -  
16 - void update(List<ScheduleRealInfo> list) ;  
17 -}  
src/main/java/com/bsth/data/car_out_info/CarOutInfoHandler.java
@@ -9,15 +9,12 @@ import org.apache.commons.lang3.StringUtils; @@ -9,15 +9,12 @@ import org.apache.commons.lang3.StringUtils;
9 import org.slf4j.Logger; 9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory; 10 import org.slf4j.LoggerFactory;
11 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
12 -import org.springframework.boot.CommandLineRunner;  
13 import org.springframework.jdbc.core.BatchPreparedStatementSetter; 12 import org.springframework.jdbc.core.BatchPreparedStatementSetter;
14 import org.springframework.jdbc.core.JdbcTemplate; 13 import org.springframework.jdbc.core.JdbcTemplate;
15 import org.springframework.jdbc.datasource.DataSourceTransactionManager; 14 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
16 import org.springframework.stereotype.Component; 15 import org.springframework.stereotype.Component;
17 -import org.springframework.stereotype.Service;  
18 import org.springframework.transaction.TransactionDefinition; 16 import org.springframework.transaction.TransactionDefinition;
19 import org.springframework.transaction.TransactionStatus; 17 import org.springframework.transaction.TransactionStatus;
20 -import org.springframework.transaction.annotation.Transactional;  
21 import org.springframework.transaction.support.DefaultTransactionDefinition; 18 import org.springframework.transaction.support.DefaultTransactionDefinition;
22 19
23 import java.sql.PreparedStatement; 20 import java.sql.PreparedStatement;
@@ -28,14 +25,23 @@ import java.util.*; @@ -28,14 +25,23 @@ import java.util.*;
28 * 发车信息表处理程序 25 * 发车信息表处理程序
29 * Created by panzhao on 2017/5/5. 26 * Created by panzhao on 2017/5/5.
30 */ 27 */
31 -@Service  
32 -public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { 28 +@Component
  29 +public class CarOutInfoHandler {
33 30
34 @Autowired 31 @Autowired
35 DayOfSchedule dayOfSchedule; 32 DayOfSchedule dayOfSchedule;
36 33
37 //班次类型对照表 34 //班次类型对照表
38 - Map<String, String> bcTypeMap; 35 + static Map<String, String> bcTypeMap;
  36 +
  37 + static{
  38 + bcTypeMap = new HashMap<>();
  39 + bcTypeMap.put("normal", "正常班次");
  40 + bcTypeMap.put("region", "区间");
  41 + bcTypeMap.put("venting", "直放");
  42 + bcTypeMap.put("major", "放站");
  43 + bcTypeMap.put("ldks", "两点间空驶");
  44 + }
39 45
40 private static ScheduleComparator.FCSJ schFCSJComparator = new ScheduleComparator.FCSJ(); 46 private static ScheduleComparator.FCSJ schFCSJComparator = new ScheduleComparator.FCSJ();
41 47
@@ -47,7 +53,6 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { @@ -47,7 +53,6 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo {
47 /** 53 /**
48 * 全量更新发车信息表 54 * 全量更新发车信息表
49 */ 55 */
50 - @Override  
51 public void updateAll() { 56 public void updateAll() {
52 Set<String> ks = BasicData.lineCode2NameMap.keySet(); 57 Set<String> ks = BasicData.lineCode2NameMap.keySet();
53 for (String lineCode : ks) { 58 for (String lineCode : ks) {
@@ -55,7 +60,6 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { @@ -55,7 +60,6 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo {
55 } 60 }
56 } 61 }
57 62
58 - @Override  
59 public void update(String lineCode) { 63 public void update(String lineCode) {
60 try { 64 try {
61 ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap = dayOfSchedule.getLpScheduleMap(); 65 ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap = dayOfSchedule.getLpScheduleMap();
@@ -75,8 +79,6 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { @@ -75,8 +79,6 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo {
75 } 79 }
76 } 80 }
77 81
78 - @Transactional  
79 - @Override  
80 public void update(List<ScheduleRealInfo> list) { 82 public void update(List<ScheduleRealInfo> list) {
81 if (list.size() == 0) 83 if (list.size() == 0)
82 return; 84 return;
@@ -194,30 +196,4 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { @@ -194,30 +196,4 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo {
194 } 196 }
195 return array; 197 return array;
196 } 198 }
197 -  
198 - @Autowired  
199 - UpdateInfoThread updateInfoThread;  
200 -  
201 - @Override  
202 - public void run(String... strings) throws Exception {  
203 - bcTypeMap = new HashMap<>();  
204 - bcTypeMap.put("normal", "正常班次");  
205 - bcTypeMap.put("region", "区间");  
206 - bcTypeMap.put("venting", "直放");  
207 - bcTypeMap.put("major", "放站");  
208 - bcTypeMap.put("ldks", "两点间空驶");  
209 - //Application.mainServices.scheduleWithFixedDelay(updateInfoThread, 60, 40, TimeUnit.SECONDS);  
210 - }  
211 -  
212 - @Component  
213 - private static class UpdateInfoThread extends Thread {  
214 -  
215 - @Autowired  
216 - CarOutInfo carOutInfoHandler;  
217 -  
218 - @Override  
219 - public void run() {  
220 - carOutInfoHandler.updateAll();  
221 - }  
222 - }  
223 } 199 }
src/main/java/com/bsth/data/car_out_info/UpdateDBThread.java 0 → 100644
  1 +package com.bsth.data.car_out_info;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.stereotype.Component;
  5 +
  6 +/**
  7 + * 数据库发车信息表更新线程
  8 + * Created by panzhao on 2017/5/14.
  9 + */
  10 +@Component
  11 +public class UpdateDBThread extends Thread{
  12 +
  13 + @Autowired
  14 + CarOutInfoHandler carOutInfoHandler;
  15 +
  16 + @Override
  17 + public void run() {
  18 + carOutInfoHandler.updateAll();
  19 + }
  20 +}
src/main/java/com/bsth/data/forecast/ForecastRealServer.java
@@ -47,7 +47,7 @@ public class ForecastRealServer implements CommandLineRunner { @@ -47,7 +47,7 @@ public class ForecastRealServer implements CommandLineRunner {
47 47
48 //车辆 ——> 预测终点时间 48 //车辆 ——> 预测终点时间
49 //static Map<String, Float> forecastMap = new HashMap<>(); 49 //static Map<String, Float> forecastMap = new HashMap<>();
50 - //线路_上下行 ——> 封装耗时数据的路由链 50 + //线路_上下行 ——> 耗时数据的路由链
51 public static ArrayListMultimap<String, SimpleRoute> lineSampleMap; 51 public static ArrayListMultimap<String, SimpleRoute> lineSampleMap;
52 //车辆 ——> 预测结果 52 //车辆 ——> 预测结果
53 public static Map<String, ForecastResult> forecastMap; 53 public static Map<String, ForecastResult> forecastMap;
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
@@ -2,8 +2,6 @@ package com.bsth.data.gpsdata; @@ -2,8 +2,6 @@ package com.bsth.data.gpsdata;
2 2
3 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
4 import com.bsth.data.forecast.ForecastRealServer; 4 import com.bsth.data.forecast.ForecastRealServer;
5 -import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;  
6 -import com.bsth.data.gpsdata.thread.OfflineMonitorThread;  
7 import com.bsth.data.schedule.DayOfSchedule; 5 import com.bsth.data.schedule.DayOfSchedule;
8 import com.bsth.entity.realcontrol.ScheduleRealInfo; 6 import com.bsth.entity.realcontrol.ScheduleRealInfo;
9 import com.google.common.collect.TreeMultimap; 7 import com.google.common.collect.TreeMultimap;
@@ -11,7 +9,6 @@ import org.apache.commons.lang3.StringUtils; @@ -11,7 +9,6 @@ import org.apache.commons.lang3.StringUtils;
11 import org.slf4j.Logger; 9 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory; 10 import org.slf4j.LoggerFactory;
13 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
14 -import org.springframework.boot.CommandLineRunner;  
15 import org.springframework.stereotype.Component; 12 import org.springframework.stereotype.Component;
16 13
17 import java.util.*; 14 import java.util.*;
@@ -25,7 +22,7 @@ import java.util.concurrent.ConcurrentMap; @@ -25,7 +22,7 @@ import java.util.concurrent.ConcurrentMap;
25 * @date 2016年8月12日 下午2:04:41 22 * @date 2016年8月12日 下午2:04:41
26 */ 23 */
27 @Component 24 @Component
28 -public class GpsRealData implements CommandLineRunner { 25 +public class GpsRealData {
29 26
30 static Logger logger = LoggerFactory.getLogger(GpsRealData.class); 27 static Logger logger = LoggerFactory.getLogger(GpsRealData.class);
31 28
@@ -35,12 +32,6 @@ public class GpsRealData implements CommandLineRunner { @@ -35,12 +32,6 @@ public class GpsRealData implements CommandLineRunner {
35 private static TreeMultimap<String, String> lineCode2Devices; 32 private static TreeMultimap<String, String> lineCode2Devices;
36 33
37 @Autowired 34 @Autowired
38 - GpsDataLoaderThread gpsDataLoader;  
39 -  
40 - @Autowired  
41 - OfflineMonitorThread offlineMonitorThread;  
42 -  
43 - @Autowired  
44 DayOfSchedule dayOfSchedule; 35 DayOfSchedule dayOfSchedule;
45 36
46 @Autowired 37 @Autowired
@@ -54,15 +45,6 @@ public class GpsRealData implements CommandLineRunner { @@ -54,15 +45,6 @@ public class GpsRealData implements CommandLineRunner {
54 lineCode2Devices = TreeMultimap.create(); 45 lineCode2Devices = TreeMultimap.create();
55 } 46 }
56 47
57 - @Override  
58 - public void run(String... arg0) throws Exception {  
59 - logger.info("gpsDataLoader,30,2");  
60 - //http形式获取GPS数据  
61 - //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);  
62 - //定时扫描掉离线  
63 - //Application.mainServices.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);  
64 - }  
65 -  
66 48
67 public void put(GpsEntity gps) { 49 public void put(GpsEntity gps) {
68 String device = gps.getDeviceId(); 50 String device = gps.getDeviceId();
src/main/java/com/bsth/data/gpsdata/thread/GpsDataLoaderThread.java
@@ -6,7 +6,6 @@ import com.bsth.data.BasicData; @@ -6,7 +6,6 @@ import com.bsth.data.BasicData;
6 import com.bsth.data.gpsdata.GpsEntity; 6 import com.bsth.data.gpsdata.GpsEntity;
7 import com.bsth.data.gpsdata.GpsRealData; 7 import com.bsth.data.gpsdata.GpsRealData;
8 import com.bsth.data.gpsdata.arrival.GpsRealAnalyse; 8 import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;
9 -import com.bsth.data.gpsdata.recovery.GpsDataRecovery;  
10 import com.bsth.util.ConfigUtil; 9 import com.bsth.util.ConfigUtil;
11 import org.apache.commons.lang3.StringUtils; 10 import org.apache.commons.lang3.StringUtils;
12 import org.apache.http.HttpEntity; 11 import org.apache.http.HttpEntity;
@@ -38,10 +37,16 @@ public class GpsDataLoaderThread extends Thread { @@ -38,10 +37,16 @@ public class GpsDataLoaderThread extends Thread {
38 */ 37 */
39 public GpsDataLoaderThread() { 38 public GpsDataLoaderThread() {
40 url = ConfigUtil.get("http.gps.real.url"); 39 url = ConfigUtil.get("http.gps.real.url");
  40 + clientUrl = ConfigUtil.get("http.gps.real.cache.url");
41 } 41 }
42 42
43 // 网关数据接口地址 43 // 网关数据接口地址
44 private static String url; 44 private static String url;
  45 + // GPS客户端内存数据接口
  46 + private static String clientUrl;
  47 +
  48 + //0:从客户端内存获取 -1:从网关获取
  49 + private static int flag = 0;
45 50
46 @Autowired 51 @Autowired
47 GpsRealData gpsRealData; 52 GpsRealData gpsRealData;
@@ -52,17 +57,20 @@ public class GpsDataLoaderThread extends Thread { @@ -52,17 +57,20 @@ public class GpsDataLoaderThread extends Thread {
52 @Override 57 @Override
53 public void run() { 58 public void run() {
54 try { 59 try {
55 - //如果正在恢复数据  
56 - if (GpsDataRecovery.run)  
57 - return;  
58 -  
59 - load(); 60 + if(flag == 0)
  61 + load();
  62 + else if(flag == -1)
  63 + loadByGateway();
60 } catch (Exception e) { 64 } catch (Exception e) {
61 logger.error("", e); 65 logger.error("", e);
62 } 66 }
63 } 67 }
64 68
65 - public void load() throws Exception { 69 + /**
  70 + * 从网关获取实时GPS数据
  71 + * @throws Exception
  72 + */
  73 + public void loadByGateway() throws Exception {
66 List<GpsEntity> list = null; 74 List<GpsEntity> list = null;
67 List<GpsEntity> updateList = new ArrayList<>(); 75 List<GpsEntity> updateList = new ArrayList<>();
68 CloseableHttpClient httpClient = null; 76 CloseableHttpClient httpClient = null;
@@ -72,8 +80,8 @@ public class GpsDataLoaderThread extends Thread { @@ -72,8 +80,8 @@ public class GpsDataLoaderThread extends Thread {
72 HttpGet get = new HttpGet(url); 80 HttpGet get = new HttpGet(url);
73 //超时时间 81 //超时时间
74 RequestConfig requestConfig = RequestConfig.custom() 82 RequestConfig requestConfig = RequestConfig.custom()
75 - .setConnectTimeout(2000).setConnectionRequestTimeout(1000)  
76 - .setSocketTimeout(2000).build(); 83 + .setConnectTimeout(1500).setConnectionRequestTimeout(1000)
  84 + .setSocketTimeout(1500).build();
77 get.setConfig(requestConfig); 85 get.setConfig(requestConfig);
78 86
79 response = httpClient.execute(get); 87 response = httpClient.execute(get);
@@ -128,4 +136,59 @@ public class GpsDataLoaderThread extends Thread { @@ -128,4 +136,59 @@ public class GpsDataLoaderThread extends Thread {
128 response.close(); 136 response.close();
129 } 137 }
130 } 138 }
  139 +
  140 + /**
  141 + * 从客户端内存获取GPS数据
  142 + */
  143 + public void load() throws Exception{
  144 + List<GpsEntity> list = null;
  145 + CloseableHttpClient httpClient = null;
  146 + CloseableHttpResponse response = null;
  147 +
  148 + try {
  149 + httpClient = HttpClients.createDefault();
  150 + HttpGet get = new HttpGet(url);
  151 + //超时时间
  152 + RequestConfig requestConfig = RequestConfig.custom()
  153 + .setConnectTimeout(2000).setConnectionRequestTimeout(1000)
  154 + .setSocketTimeout(2000).build();
  155 + get.setConfig(requestConfig);
  156 +
  157 + response = httpClient.execute(get);
  158 +
  159 + HttpEntity entity = response.getEntity();
  160 + if (null != entity) {
  161 + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  162 + StringBuffer stringBuffer = new StringBuffer();
  163 + String str = "";
  164 + while ((str = br.readLine()) != null)
  165 + stringBuffer.append(str);
  166 +
  167 + JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());
  168 +
  169 + if (jsonObj != null)
  170 + list = JSON.parseArray(jsonObj.getString("data"), GpsEntity.class);
  171 +
  172 + String nbbm;
  173 + for (GpsEntity gps : list) {
  174 +
  175 + nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId());
  176 + if (StringUtils.isBlank(nbbm))
  177 + gps.setIncomplete(true);//标记为异常数据
  178 + else
  179 + gps.setNbbm(nbbm);
  180 + }
  181 + //分析数据
  182 + gpsRealAnalyse.analyse(list);
  183 + } else
  184 + logger.error("client gps result is null");
  185 + } catch (Exception e) {
  186 + logger.error("", e);
  187 + } finally {
  188 + if (null != httpClient)
  189 + httpClient.close();
  190 + if (null != response)
  191 + response.close();
  192 + }
  193 + }
131 } 194 }
132 \ No newline at end of file 195 \ No newline at end of file
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -2,20 +2,11 @@ package com.bsth.data.schedule; @@ -2,20 +2,11 @@ package com.bsth.data.schedule;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.alibaba.fastjson.JSONArray; 4 import com.alibaba.fastjson.JSONArray;
5 -import com.bsth.Application;  
6 import com.bsth.common.Constants; 5 import com.bsth.common.Constants;
7 import com.bsth.common.ResponseCode; 6 import com.bsth.common.ResponseCode;
8 -import com.bsth.data.BasicData;  
9 import com.bsth.data.LineConfigData; 7 import com.bsth.data.LineConfigData;
10 -import com.bsth.data.ThreadMonotor;  
11 -import com.bsth.data.directive.DirectivesPstThread;  
12 import com.bsth.data.gpsdata.GpsRealData; 8 import com.bsth.data.gpsdata.GpsRealData;
13 import com.bsth.data.gpsdata.recovery.GpsDataRecovery; 9 import com.bsth.data.gpsdata.recovery.GpsDataRecovery;
14 -import com.bsth.data.schedule.late_adjust.ScheduleLateThread;  
15 -import com.bsth.data.schedule.thread.CalcOilThread;  
16 -import com.bsth.data.schedule.thread.SchedulePstThread;  
17 -import com.bsth.data.schedule.thread.ScheduleRefreshThread;  
18 -import com.bsth.data.schedule.thread.SubmitToTrafficManage;  
19 import com.bsth.entity.realcontrol.LineConfig; 10 import com.bsth.entity.realcontrol.LineConfig;
20 import com.bsth.entity.realcontrol.ScheduleRealInfo; 11 import com.bsth.entity.realcontrol.ScheduleRealInfo;
21 import com.bsth.entity.schedule.SchedulePlanInfo; 12 import com.bsth.entity.schedule.SchedulePlanInfo;
@@ -33,8 +24,6 @@ import org.joda.time.format.DateTimeFormatter; @@ -33,8 +24,6 @@ import org.joda.time.format.DateTimeFormatter;
33 import org.slf4j.Logger; 24 import org.slf4j.Logger;
34 import org.slf4j.LoggerFactory; 25 import org.slf4j.LoggerFactory;
35 import org.springframework.beans.factory.annotation.Autowired; 26 import org.springframework.beans.factory.annotation.Autowired;
36 -import org.springframework.boot.CommandLineRunner;  
37 -import org.springframework.core.annotation.Order;  
38 import org.springframework.dao.DataIntegrityViolationException; 27 import org.springframework.dao.DataIntegrityViolationException;
39 import org.springframework.jdbc.core.JdbcTemplate; 28 import org.springframework.jdbc.core.JdbcTemplate;
40 import org.springframework.stereotype.Component; 29 import org.springframework.stereotype.Component;
@@ -42,7 +31,6 @@ import org.springframework.stereotype.Component; @@ -42,7 +31,6 @@ import org.springframework.stereotype.Component;
42 import java.text.ParseException; 31 import java.text.ParseException;
43 import java.text.SimpleDateFormat; 32 import java.text.SimpleDateFormat;
44 import java.util.*; 33 import java.util.*;
45 -import java.util.concurrent.TimeUnit;  
46 34
47 /** 35 /**
48 * @author PanZhao 36 * @author PanZhao
@@ -51,8 +39,7 @@ import java.util.concurrent.TimeUnit; @@ -51,8 +39,7 @@ import java.util.concurrent.TimeUnit;
51 * @date 2016年8月15日 上午10:16:12 39 * @date 2016年8月15日 上午10:16:12
52 */ 40 */
53 @Component 41 @Component
54 -@Order(value = 3)  
55 -public class DayOfSchedule implements CommandLineRunner { 42 +public class DayOfSchedule {
56 43
57 Logger logger = LoggerFactory.getLogger(this.getClass()); 44 Logger logger = LoggerFactory.getLogger(this.getClass());
58 45
@@ -95,9 +82,6 @@ public class DayOfSchedule implements CommandLineRunner { @@ -95,9 +82,6 @@ public class DayOfSchedule implements CommandLineRunner {
95 @Autowired 82 @Autowired
96 GpsRealData gpsRealData; 83 GpsRealData gpsRealData;
97 84
98 - @Autowired  
99 - BasicData.BasicDataLoader basicDataLoader;  
100 -  
101 /** 85 /**
102 * 线路当前使用的排班的日期 86 * 线路当前使用的排班的日期
103 */ 87 */
@@ -117,63 +101,13 @@ public class DayOfSchedule implements CommandLineRunner { @@ -117,63 +101,13 @@ public class DayOfSchedule implements CommandLineRunner {
117 } 101 }
118 102
119 @Autowired 103 @Autowired
120 - ScheduleRefreshThread scheduleRefreshThread;  
121 -  
122 - @Autowired  
123 - SchedulePstThread schedulePstThread;  
124 -  
125 - @Autowired  
126 - ScheduleLateThread scheduleLateThread;  
127 -  
128 - @Autowired  
129 - SubmitToTrafficManage submitToTrafficManage;  
130 -  
131 - @Autowired  
132 LineConfigData lineConfigs; 104 LineConfigData lineConfigs;
133 105
134 @Autowired 106 @Autowired
135 GpsDataRecovery gpsDataRecovery; 107 GpsDataRecovery gpsDataRecovery;
136 108
137 - @Autowired  
138 - DirectivesPstThread directivesPstThread;  
139 -  
140 - @Autowired  
141 - CalcOilThread calcOilThread;  
142 -  
143 - @Autowired  
144 - ThreadMonotor threadMonotor;  
145 -  
146 private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"), fmtHHmm = DateTimeFormat.forPattern("HH:mm"); 109 private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"), fmtHHmm = DateTimeFormat.forPattern("HH:mm");
147 110
148 - @Override  
149 - public void run(String... arg0) throws Exception {  
150 - basicDataLoader.loadAllData();  
151 -  
152 - //翻班线程  
153 -// Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);  
154 - //入库  
155 -// Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);  
156 - //班次误点扫描  
157 -// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS);  
158 -  
159 - //每天凌晨2点20提交数据到运管处  
160 - long diff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();  
161 - if (diff < 0)  
162 - diff += (1000 * 60 * 60 * 24);  
163 -  
164 - logger.info(diff / 1000 / 60 + "分钟之后提交到运管处");  
165 - //Application.mainServices.scheduleAtFixedRate(submitToTrafficManage, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);  
166 -  
167 - //计算油、公里加注  
168 - Application.mainServices.scheduleAtFixedRate(calcOilThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);  
169 -  
170 - //指令持久化线程  
171 - Application.mainServices.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);  
172 -  
173 - //监听  
174 - Application.mainServices.scheduleWithFixedDelay(threadMonotor, 120, 60, TimeUnit.SECONDS);  
175 - }  
176 -  
177 //数据恢复 111 //数据恢复
178 private void dataRecovery() { 112 private void dataRecovery() {
179 GpsDataRecovery.run = true; 113 GpsDataRecovery.run = true;