Commit 56af947d7ff24d1833e0f026b6e5a96f89ea7cba

Authored by panzh
1 parent c4167f3d

update...

src/main/java/com/bsth/StartCommand.java
@@ -63,7 +63,7 @@ public class StartCommand implements CommandLineRunner { @@ -63,7 +63,7 @@ public class StartCommand implements CommandLineRunner {
63 logger.info("load geo data start..."); 63 logger.info("load geo data start...");
64 fixedLoadCacheThread.run(); 64 fixedLoadCacheThread.run();
65 logger.info("load geo data end..."); 65 logger.info("load geo data end...");
66 - sexec.scheduleWithFixedDelay(fixedLoadCacheThread, 60 * 300, 60 * 300, TimeUnit.SECONDS); 66 + sexec.scheduleWithFixedDelay(fixedLoadCacheThread, 60 * 10, 60 * 10, TimeUnit.SECONDS);
67 67
68 68
69 /**/ //定时刷新班次信息 69 /**/ //定时刷新班次信息
src/main/java/com/bsth/data/geo/loader/DataLoader.java
@@ -33,6 +33,7 @@ public class DataLoader { @@ -33,6 +33,7 @@ public class DataLoader {
33 33
34 public void load(List<String> codes) { 34 public void load(List<String> codes) {
35 try { 35 try {
  36 + logger.info("load geo data, codes: " + codes);
36 String inCond = null; 37 String inCond = null;
37 if (null != codes && codes.size() > 0) { 38 if (null != codes && codes.size() > 0) {
38 StringBuilder sb = new StringBuilder(); 39 StringBuilder sb = new StringBuilder();
@@ -56,7 +57,7 @@ public class DataLoader { @@ -56,7 +57,7 @@ public class DataLoader {
56 //计算空间属性 57 //计算空间属性
57 fullSections = GeoCalculator.calc(stationMaps.get(k), sectionMaps.get(k)); 58 fullSections = GeoCalculator.calc(stationMaps.get(k), sectionMaps.get(k));
58 59
59 - if(null != fullSections) 60 + if (null != fullSections)
60 fullSectionMaps.putAll(k, fullSections); 61 fullSectionMaps.putAll(k, fullSections);
61 } 62 }
62 63
@@ -75,7 +76,7 @@ public class DataLoader { @@ -75,7 +76,7 @@ public class DataLoader {
75 76
76 List<CarPark> cps = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(CarPark.class)); 77 List<CarPark> cps = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(CarPark.class));
77 Polygon polygon; 78 Polygon polygon;
78 - for(CarPark cp : cps){ 79 + for (CarPark cp : cps) {
79 polygon = GeoUtils.parsePolygon(cp.getPolygonStr()); 80 polygon = GeoUtils.parsePolygon(cp.getPolygonStr());
80 cp.setPolygon(polygon); 81 cp.setPolygon(polygon);
81 } 82 }
@@ -96,7 +97,7 @@ public class DataLoader { @@ -96,7 +97,7 @@ public class DataLoader {
96 " FROM" + 97 " FROM" +
97 " ( SELECT line_code, station_code, station_name AS NAME, station_route_code AS serial_no, directions AS up_down FROM bsth_c_stationroute WHERE destroy = 0 ) a" + 98 " ( SELECT line_code, station_code, station_name AS NAME, station_route_code AS serial_no, directions AS up_down FROM bsth_c_stationroute WHERE destroy = 0 ) a" +
98 " LEFT JOIN bsth_c_station b ON a.station_code = b.station_cod" 99 " LEFT JOIN bsth_c_station b ON a.station_code = b.station_cod"
99 - + (inCont == null ? "" : " where a.line_code in (" + inCont + ")"); 100 + + (inCont == null ? "" : " where a.line_code in (" + inCont + ")") + " order by serial_no";
100 101
101 List<StationRoute> srs = jdbcTemplate.query(sql 102 List<StationRoute> srs = jdbcTemplate.query(sql
102 , BeanPropertyRowMapper.newInstance(StationRoute.class)); 103 , BeanPropertyRowMapper.newInstance(StationRoute.class));
@@ -123,7 +124,7 @@ public class DataLoader { @@ -123,7 +124,7 @@ public class DataLoader {
123 " FROM " + 124 " FROM " +
124 " ( SELECT line_code, directions, sectionroute_code AS i, section_code FROM bsth_c_sectionroute WHERE destroy = 0 ) a " + 125 " ( SELECT line_code, directions, sectionroute_code AS i, section_code FROM bsth_c_sectionroute WHERE destroy = 0 ) a " +
125 " LEFT JOIN bsth_c_section b ON a.section_code = b.section_code " 126 " LEFT JOIN bsth_c_section b ON a.section_code = b.section_code "
126 - + (inCont == null ? "" : " where a.line_code in (" + inCont + ")"); 127 + + (inCont == null ? "" : " where a.line_code in (" + inCont + ")") + " order by i";
127 128
128 List<SectionRoute> srs = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(SectionRoute.class)); 129 List<SectionRoute> srs = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(SectionRoute.class));
129 130
src/main/java/com/bsth/data/geo/loader/thread/DataLoadThread.java
@@ -36,20 +36,19 @@ public class DataLoadThread extends Thread { @@ -36,20 +36,19 @@ public class DataLoadThread extends Thread {
36 public void run() { 36 public void run() {
37 37
38 try { 38 try {
39 - t = System.currentTimeMillis();  
40 if (firstLoadFlag) { 39 if (firstLoadFlag) {
41 cacheLoader.load(null); 40 cacheLoader.load(null);
42 firstLoadFlag = false; 41 firstLoadFlag = false;
43 } else { 42 } else {
44 43
45 - String timeStr = fmtyyyyMMddHHmm.print(t),  
46 - sql = "select DISTINCT line_code from bsth_c_sectionroute where section_code in (select section_code from bsth_c_section where update_date>='" + timeStr + "') " +  
47 - " UNION" +  
48 - " select DISTINCT line_code from bsth_c_stationroute where station_code in ( select station_cod from bsth_c_station where update_date>='" + timeStr + "') " +  
49 - " UNION" +  
50 - " select DISTINCT line_code from bsth_c_stationroute where update_date>='" + timeStr + "' " +  
51 - " UNION" +  
52 - " select DISTINCT line_code from bsth_c_sectionroute where update_date>='" + timeStr + "'"; 44 + String timeStr = fmtyyyyMMddHHmm.print(t - 1000 * 20);
  45 + String sql = "select DISTINCT line_code from bsth_c_sectionroute where section_code in (select section_code from bsth_c_section where update_date>='" + timeStr + "') " +
  46 + " UNION" +
  47 + " select DISTINCT line_code from bsth_c_stationroute where station_code in ( select station_cod from bsth_c_station where update_date>='" + timeStr + "') " +
  48 + " UNION" +
  49 + " select DISTINCT line_code from bsth_c_stationroute where update_date>='" + timeStr + "' " +
  50 + " UNION" +
  51 + " select DISTINCT line_code from bsth_c_sectionroute where update_date>='" + timeStr + "'";
53 52
54 53
55 List<String> codes = jdbcTemplate.queryForList(sql, String.class); 54 List<String> codes = jdbcTemplate.queryForList(sql, String.class);
@@ -57,6 +56,8 @@ public class DataLoadThread extends Thread { @@ -57,6 +56,8 @@ public class DataLoadThread extends Thread {
57 if (codes.size() > 0) 56 if (codes.size() > 0)
58 cacheLoader.load(codes); 57 cacheLoader.load(codes);
59 } 58 }
  59 +
  60 + t = System.currentTimeMillis();
60 } catch (Exception e) { 61 } catch (Exception e) {
61 logger.error("", e); 62 logger.error("", e);
62 } 63 }
src/main/java/com/bsth/data/geo/loader/util/GeoCalculator.java
@@ -162,10 +162,10 @@ public class GeoCalculator { @@ -162,10 +162,10 @@ public class GeoCalculator {
162 } 162 }
163 163
164 //路段倒着画 164 //路段倒着画
165 - double d1 = GeoUtils.getDistance(all.get(0), sections.get(0)); 165 +
  166 + double d4 = GeoUtils.getDistance(all.get(size - 1), sections.get(size2 - 1));double d1 = GeoUtils.getDistance(all.get(0), sections.get(0));
166 double d2 = GeoUtils.getDistance(all.get(0), sections.get(size2 - 1)); 167 double d2 = GeoUtils.getDistance(all.get(0), sections.get(size2 - 1));
167 double d3 = GeoUtils.getDistance(all.get(size - 1), sections.get(0)); 168 double d3 = GeoUtils.getDistance(all.get(size - 1), sections.get(0));
168 - double d4 = GeoUtils.getDistance(all.get(size - 1), sections.get(size2 - 1));  
169 169
170 int dt = 10; 170 int dt = 10;
171 if (d1 < dt && d1 < d2) 171 if (d1 < dt && d1 < d2)
src/main/java/com/bsth/data/history/HistoryConsumeTimeDataHandler.java
@@ -131,8 +131,9 @@ public class HistoryConsumeTimeDataHandler { @@ -131,8 +131,9 @@ public class HistoryConsumeTimeDataHandler {
131 Application.mainServices.scheduleAtFixedRate(consumeTimeLoadThread 131 Application.mainServices.scheduleAtFixedRate(consumeTimeLoadThread
132 , timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 132 , timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
133 133
134 - if (timeDiff > 1000 * 60 * 10)  
135 - consumeTimeLoadThread.run(); 134 + consumeTimeLoadThread.run();
  135 + //if (timeDiff > 1000 * 60 * 10)
  136 + // consumeTimeLoadThread.run();
136 } 137 }
137 138
138 public static LineConsumeTime getLct(String lineCode, int upDown) { 139 public static LineConsumeTime getLct(String lineCode, int upDown) {
@@ -230,7 +231,7 @@ public class HistoryConsumeTimeDataHandler { @@ -230,7 +231,7 @@ public class HistoryConsumeTimeDataHandler {
230 dt.minusDays(7);//减7天 231 dt.minusDays(7);//减7天
231 String rq = dt.toString("yyyyMMdd "); 232 String rq = dt.toString("yyyyMMdd ");
232 233
233 - rq = "20180625"; 234 + rq = "20180626";
234 String sql = "select * from bsth_h_consume_time where rq=" + rq; 235 String sql = "select * from bsth_h_consume_time where rq=" + rq;
235 JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_InfoPublish.getDataSource()); 236 JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_InfoPublish.getDataSource());
236 List<StationConsumeTime> list = 237 List<StationConsumeTime> list =
@@ -276,7 +277,7 @@ public class HistoryConsumeTimeDataHandler { @@ -276,7 +277,7 @@ public class HistoryConsumeTimeDataHandler {
276 277
277 if (map.size() > 0) 278 if (map.size() > 0)
278 lctMaps = map; 279 lctMaps = map;
279 - logger.info("calc end..."); 280 + logger.info("load ConsumeTime end...");
280 } catch (Exception e) { 281 } catch (Exception e) {
281 logger.error("", e); 282 logger.error("", e);
282 } 283 }
@@ -343,12 +344,19 @@ public class HistoryConsumeTimeDataHandler { @@ -343,12 +344,19 @@ public class HistoryConsumeTimeDataHandler {
343 return null; 344 return null;
344 List<Integer> ns = new ArrayList<>(list.size()); 345 List<Integer> ns = new ArrayList<>(list.size());
345 //把进站距离部分 均算成耗时 346 //把进站距离部分 均算成耗时
346 - double inD;  
347 - int normal = 40; 347 + double ad;
  348 + int normal = 20;
348 for (StationConsumeTime sct : list) { 349 for (StationConsumeTime sct : list) {
349 - inD = sct.getInD1() + sct.getInD2();  
350 - if (inD > normal)  
351 - sct.setSeconds((int) (sct.getSeconds() + ((inD - normal) / IN_STATION_SPEED))); 350 +
  351 + //加进距2
  352 + if (sct.getInD2() > normal) {
  353 + sct.setSeconds((int) (sct.getSeconds() + ((sct.getInD2() - normal) / IN_STATION_SPEED)));
  354 + }
  355 +
  356 + //减进距1
  357 + if (sct.getInD1() > normal) {
  358 + sct.setSeconds((int) (sct.getSeconds() - ((sct.getInD1() - normal) / IN_STATION_SPEED)));
  359 + }
352 360
353 ns.add(sct.getSeconds()); 361 ns.add(sct.getSeconds());
354 } 362 }