Commit 8f5618c66cb9338521278e37b90beab511c829d3
合并浦东分支 0124
Showing
82 changed files
with
2726 additions
and
428 deletions
Too many changes to show.
To preserve performance only 82 of 292 files are displayed.
src/main/java/com/bsth/XDApplication.java
| 1 | 1 | package com.bsth; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.data.BasicData; |
| 4 | -import com.bsth.data.LineVersionsData; | |
| 5 | 4 | import com.bsth.data.ThreadMonotor; |
| 6 | 5 | import com.bsth.data.car_out_info.UpdateDBThread; |
| 7 | 6 | import com.bsth.data.directive.DirectivesPstThread; |
| 8 | 7 | import com.bsth.data.forecast.SampleTimeDataLoader; |
| 9 | 8 | import com.bsth.data.gpsdata_v2.thread.GpsDataLoaderThread; |
| 10 | 9 | import com.bsth.data.gpsdata_v2.thread.OfflineMonitorThread; |
| 10 | +import com.bsth.data.line_version.thread.FixedEnableVerionsThread; | |
| 11 | 11 | import com.bsth.data.msg_queue.DirectivePushQueue; |
| 12 | 12 | import com.bsth.data.msg_queue.WebSocketPushQueue; |
| 13 | +import com.bsth.data.safe_driv.SafeDrivDataLoadThread; | |
| 13 | 14 | import com.bsth.data.schedule.DayOfSchedule; |
| 14 | 15 | import com.bsth.data.schedule.auto_exec.AutoExecScanThread; |
| 15 | 16 | import com.bsth.data.schedule.edit_logs.SeiPstThread; |
| ... | ... | @@ -72,8 +73,14 @@ public class XDApplication implements CommandLineRunner { |
| 72 | 73 | @Autowired |
| 73 | 74 | OfflineMonitorThread offlineMonitorThread; |
| 74 | 75 | |
| 76 | + //@Autowired | |
| 77 | + //LineVersionsData lineVersionsData; | |
| 78 | + | |
| 79 | + @Autowired | |
| 80 | + FixedEnableVerionsThread fixedEnableVerionsThread; | |
| 81 | + | |
| 75 | 82 | @Autowired |
| 76 | - LineVersionsData lineVersionsData; | |
| 83 | + SafeDrivDataLoadThread safeDrivDataLoadThread; | |
| 77 | 84 | |
| 78 | 85 | private static long timeDiff; |
| 79 | 86 | private static long timeDiffTraffic; |
| ... | ... | @@ -131,11 +138,18 @@ public class XDApplication implements CommandLineRunner { |
| 131 | 138 | //sexec.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS); |
| 132 | 139 | //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作) |
| 133 | 140 | //sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS); |
| 141 | + | |
| 142 | + //安全驾驶 | |
| 143 | + //sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 40, 30, TimeUnit.SECONDS); | |
| 144 | + | |
| 145 | + //sexec.scheduleWithFixedDelay(fixedEnableVerionsThread, 20, 60 * 2 , TimeUnit.SECONDS); | |
| 134 | 146 | } |
| 135 | 147 | |
| 136 | 148 | public void prodInit(){ |
| 137 | 149 | log.info("prodInit..."); |
| 138 | 150 | ScheduledExecutorService sexec = Application.mainServices; |
| 151 | + //安全驾驶 | |
| 152 | + sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS); | |
| 139 | 153 | |
| 140 | 154 | /** 线调业务 */ |
| 141 | 155 | sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 |
| ... | ... | @@ -167,6 +181,9 @@ public class XDApplication implements CommandLineRunner { |
| 167 | 181 | sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); |
| 168 | 182 | |
| 169 | 183 | //线路版本更新 |
| 170 | - sexec.scheduleWithFixedDelay(lineVersionsData, 60 * 5, 60 * 15, TimeUnit.SECONDS); | |
| 184 | + //sexec.scheduleWithFixedDelay(lineVersionsData, 60 * 5, 60 * 15, TimeUnit.SECONDS); | |
| 185 | + | |
| 186 | + //线路版本更新 | |
| 187 | + sexec.scheduleWithFixedDelay(fixedEnableVerionsThread, 60 * 4, 60 * 2 , TimeUnit.SECONDS); | |
| 171 | 188 | } |
| 172 | 189 | } | ... | ... |
src/main/java/com/bsth/common/Constants.java
| ... | ... | @@ -38,6 +38,7 @@ public class Constants { |
| 38 | 38 | |
| 39 | 39 | public static final String SESSION_USERNAME = "sessionUserName"; |
| 40 | 40 | public static final String COMPANY_AUTHORITYS = "cmyAuths"; |
| 41 | + public static final String STATION_AND_SECTION_COUNT = "/station/updateStationAndSectionCode"; | |
| 41 | 42 | |
| 42 | 43 | /** |
| 43 | 44 | * 解除调度指令和班次的外键约束 | ... | ... |
src/main/java/com/bsth/controller/BusIntervalController.java
| ... | ... | @@ -52,5 +52,10 @@ public class BusIntervalController { |
| 52 | 52 | public List<Map<String,Object>> correctStatis(@RequestParam Map<String, Object> map){ |
| 53 | 53 | return busIntervalService.correctStatis(map); |
| 54 | 54 | } |
| 55 | - | |
| 55 | + | |
| 56 | + @RequestMapping(value = "exportWaybillMore", method = RequestMethod.GET) | |
| 57 | + public Map<String, Object> exportWaybillMore(@RequestParam Map<String, Object> map){ | |
| 58 | + return busIntervalService.exportWaybillMore(map); | |
| 59 | + } | |
| 60 | + | |
| 56 | 61 | } | ... | ... |
src/main/java/com/bsth/controller/LineController.java
| 1 | 1 | package com.bsth.controller; |
| 2 | 2 | |
| 3 | -import java.text.ParseException; | |
| 4 | -import java.text.SimpleDateFormat; | |
| 5 | -import java.util.Date; | |
| 6 | -import java.util.HashMap; | |
| 7 | -import java.util.Map; | |
| 8 | - | |
| 9 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 11 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 12 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 13 | -import org.springframework.web.bind.annotation.RestController; | |
| 14 | - | |
| 15 | 3 | import com.bsth.common.ResponseCode; |
| 16 | 4 | import com.bsth.entity.Line; |
| 17 | 5 | import com.bsth.entity.LineVersions; |
| 18 | 6 | import com.bsth.service.LineService; |
| 19 | 7 | import com.bsth.service.LineVersionsService; |
| 20 | 8 | import com.bsth.util.GetUIDAndCode; |
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 11 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 12 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 13 | +import org.springframework.web.bind.annotation.RestController; | |
| 14 | + | |
| 15 | +import java.text.ParseException; | |
| 16 | +import java.text.SimpleDateFormat; | |
| 17 | +import java.util.Date; | |
| 18 | +import java.util.HashMap; | |
| 19 | +import java.util.Map; | |
| 21 | 20 | |
| 22 | 21 | /** |
| 23 | 22 | * |
| ... | ... | @@ -123,4 +122,14 @@ public class LineController extends BaseController<Line, Integer> { |
| 123 | 122 | Line findByID(@RequestParam(defaultValue = "id") Integer id){ |
| 124 | 123 | return service.findById(id); |
| 125 | 124 | } |
| 125 | + | |
| 126 | + /** | |
| 127 | + * 删除线路 | |
| 128 | + * @param id | |
| 129 | + * @return | |
| 130 | + */ | |
| 131 | + @RequestMapping(value ="/remove" , method = RequestMethod.POST) | |
| 132 | + public Map<String, Object> remove(Integer id){ | |
| 133 | + return service.remove(id); | |
| 134 | + } | |
| 126 | 135 | } | ... | ... |
src/main/java/com/bsth/controller/SectionController.java
| ... | ... | @@ -135,7 +135,16 @@ public class SectionController extends BaseController<Section, Integer> { |
| 135 | 135 | @RequestMapping(value="getSectionCode" , method = RequestMethod.GET) |
| 136 | 136 | public long getSectionCode() { |
| 137 | 137 | return GetUIDAndCode.getSectionId(); |
| 138 | - | |
| 138 | + } | |
| 139 | + | |
| 140 | + /** | |
| 141 | + * @Description :TODO(把路段截取位双路名路段) | |
| 142 | + * | |
| 143 | + * @return int <sectionCode路段编码> | |
| 144 | + */ | |
| 145 | + @RequestMapping(value="doubleName" , method = RequestMethod.GET) | |
| 146 | + public Map<String, Object> doubleName(@RequestParam Map<String, Object> map) { | |
| 147 | + return service.doubleName(map); | |
| 139 | 148 | } |
| 140 | 149 | |
| 141 | 150 | } | ... | ... |
src/main/java/com/bsth/controller/StationController.java
| ... | ... | @@ -148,14 +148,28 @@ public class StationController extends BaseController<Station, Integer> { |
| 148 | 148 | return service.stationCacheUpdate(map); |
| 149 | 149 | } |
| 150 | 150 | /** |
| 151 | + * @Description :TODO(更新内部编码) | |
| 152 | + * @param stationCount,sectionCount 更新数 | |
| 153 | + */ | |
| 154 | + @RequestMapping(value="updateStationAndSectionCode" , method = RequestMethod.GET) | |
| 155 | + public int updateStationAndSectionCode(@RequestParam Integer stationCount, Integer sectionCount) { | |
| 156 | + for(int i = 0; i < stationCount; i++) { | |
| 157 | + GetUIDAndCode.getStationId(); | |
| 158 | + } | |
| 159 | + for(int i = 0; i < sectionCount; i++) { | |
| 160 | + GetUIDAndCode.getSectionId(); | |
| 161 | + } | |
| 162 | + return 1; | |
| 163 | + } | |
| 164 | + /** | |
| 151 | 165 | * @Description :TODO(查询站点编码) |
| 152 | - * | |
| 166 | + * | |
| 153 | 167 | * @return int <stationCode站点编码> |
| 154 | 168 | */ |
| 155 | 169 | @RequestMapping(value="getStationCode" , method = RequestMethod.GET) |
| 156 | 170 | public long getStationCode() { |
| 157 | 171 | return GetUIDAndCode.getStationId(); |
| 158 | - | |
| 172 | + | |
| 159 | 173 | } |
| 160 | 174 | /** |
| 161 | 175 | * @Description :TODO(查询站点编码) | ... | ... |
src/main/java/com/bsth/controller/StationRouteController.java
| 1 | 1 | package com.bsth.controller; |
| 2 | 2 | |
| 3 | +import com.bsth.entity.Station; | |
| 3 | 4 | import com.bsth.entity.StationRoute; |
| 4 | 5 | import com.bsth.entity.StationRouteCache; |
| 5 | 6 | import com.bsth.repository.StationRouteCacheRepository; |
| ... | ... | @@ -110,12 +111,20 @@ public class StationRouteController extends BaseController<StationRoute, Integer |
| 110 | 111 | } |
| 111 | 112 | |
| 112 | 113 | /** |
| 113 | - * @Description :TODO(查询缓存站点的上一个缓存站点) | |
| 114 | + * @Description :TODO(查询线路某方向下的站点序号与类型) | |
| 114 | 115 | */ |
| 115 | 116 | @RequestMapping(value = "/findCacheUpStationRouteCode" , method = RequestMethod.GET) |
| 116 | 117 | public List<Map<String, Object>> findCacheUpStationRouteCode(@RequestParam Map<String, Object> map) { |
| 117 | 118 | return service.findCacheUpStationRouteCode(map); |
| 118 | 119 | } |
| 120 | + | |
| 121 | + /** | |
| 122 | + * @Description :TODO(查询站点的下一个缓存站点) | |
| 123 | + */ | |
| 124 | + @RequestMapping(value = "/findDownStationRoute" , method = RequestMethod.GET) | |
| 125 | + public List<Map<String, Object>> findDownStationRoute(@RequestParam Map<String, Object> map) { | |
| 126 | + return service.findDownStationRoute(map); | |
| 127 | + } | |
| 119 | 128 | |
| 120 | 129 | /** |
| 121 | 130 | * @Description :TODO(查询线路某方向下所有站点的中心百度坐标) | ... | ... |
src/main/java/com/bsth/controller/geo_data/GeoDataController.java
| 1 | -package com.bsth.controller.geo_data; | |
| 2 | - | |
| 3 | -import com.bsth.entity.geo_data.GeoStation; | |
| 4 | -import com.bsth.service.geo_data.GeoDataService; | |
| 5 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 6 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 7 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 8 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 9 | -import org.springframework.web.bind.annotation.RestController; | |
| 10 | - | |
| 11 | -import java.util.Map; | |
| 12 | - | |
| 13 | -/** | |
| 14 | - * Created by panzhao on 2017/12/7. | |
| 15 | - */ | |
| 16 | -@RestController | |
| 17 | -@RequestMapping("/_geo_data") | |
| 18 | -public class GeoDataController { | |
| 19 | - | |
| 20 | - @Autowired | |
| 21 | - GeoDataService geoDataService; | |
| 22 | - | |
| 23 | - @RequestMapping("findGeoStations") | |
| 24 | - public Map<String, Object> findGeoStations(@RequestParam String lineCode){ | |
| 25 | - return geoDataService.findGeoStations(lineCode); | |
| 26 | - } | |
| 27 | - | |
| 28 | - | |
| 29 | - @RequestMapping("findGeoRoad") | |
| 30 | - public Map<String, Object> findGeoRoad(@RequestParam String lineCode){ | |
| 31 | - return geoDataService.findGeoRoad(lineCode); | |
| 32 | - } | |
| 33 | - | |
| 34 | - @RequestMapping(value = "updateBufferInfo",method = RequestMethod.POST) | |
| 35 | - public Map<String, Object> updateBufferInfo(GeoStation station){ | |
| 36 | - return geoDataService.updateBufferInfo(station); | |
| 37 | - } | |
| 38 | - | |
| 39 | - @RequestMapping(value = "updateStationName",method = RequestMethod.POST) | |
| 40 | - public Map<String, Object> updateStationName(@RequestParam Map<String, Object> map){ | |
| 41 | - return geoDataService.updateStationName(map); | |
| 42 | - } | |
| 1 | +package com.bsth.controller.geo_data; | |
| 2 | + | |
| 3 | +import com.bsth.entity.geo_data.GeoRoad; | |
| 4 | +import com.bsth.entity.geo_data.GeoStation; | |
| 5 | +import com.bsth.service.geo_data.GeoDataService; | |
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 8 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 9 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 10 | +import org.springframework.web.bind.annotation.RestController; | |
| 11 | + | |
| 12 | +import java.util.Map; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * Created by panzhao on 2017/12/7. | |
| 16 | + */ | |
| 17 | +@RestController | |
| 18 | +@RequestMapping("/_geo_data") | |
| 19 | +public class GeoDataController { | |
| 20 | + | |
| 21 | + @Autowired | |
| 22 | + GeoDataService geoDataService; | |
| 23 | + | |
| 24 | + @RequestMapping("findGeoStations") | |
| 25 | + public Map<String, Object> findGeoStations(@RequestParam String lineCode, Integer version){ | |
| 26 | + return geoDataService.findGeoStations(lineCode, version); | |
| 27 | + } | |
| 28 | + | |
| 29 | + | |
| 30 | + @RequestMapping("findGeoRoad") | |
| 31 | + public Map<String, Object> findGeoRoad(@RequestParam String lineCode,Integer version){ | |
| 32 | + return geoDataService.findGeoRoad(lineCode, version); | |
| 33 | + } | |
| 34 | + | |
| 35 | + @RequestMapping(value = "updateBufferInfo",method = RequestMethod.POST) | |
| 36 | + public Map<String, Object> updateBufferInfo(GeoStation station){ | |
| 37 | + return geoDataService.updateBufferInfo(station); | |
| 38 | + } | |
| 39 | + | |
| 40 | + @RequestMapping(value = "updateStationName",method = RequestMethod.POST) | |
| 41 | + public Map<String, Object> updateStationName(@RequestParam Map<String, Object> map){ | |
| 42 | + return geoDataService.updateStationName(map); | |
| 43 | + } | |
| 44 | + | |
| 45 | + @RequestMapping(value = "addNewStationRoute",method = RequestMethod.POST) | |
| 46 | + public Map<String, Object> addNewStationRoute(@RequestParam String lineCode,@RequestParam int versions,@RequestParam int upDown | |
| 47 | + ,@RequestParam String stationName,@RequestParam Float lat,@RequestParam Float lng,@RequestParam int prevRouteId){ | |
| 48 | + return geoDataService.addNewStationRoute(lineCode, upDown, versions, stationName, lat, lng, prevRouteId); | |
| 49 | + } | |
| 50 | + | |
| 51 | + @RequestMapping(value = "addNewRoadRoute",method = RequestMethod.POST) | |
| 52 | + public Map<String, Object> addNewRoadRoute(@RequestParam String lineCode,@RequestParam int versions,@RequestParam int upDown | |
| 53 | + ,@RequestParam String sectionName,@RequestParam String crosesRoad,@RequestParam String coords,@RequestParam int prevRouteId){ | |
| 54 | + return geoDataService.addNewRoadRoute(lineCode, upDown, versions, sectionName, crosesRoad, coords, prevRouteId); | |
| 55 | + } | |
| 56 | + | |
| 57 | + @RequestMapping(value = "destroyStation",method = RequestMethod.POST) | |
| 58 | + public Map<String, Object> destroyStation(GeoStation station){ | |
| 59 | + return geoDataService.destroyStation(station); | |
| 60 | + } | |
| 61 | + | |
| 62 | + @RequestMapping(value = "updateRoadInfo",method = RequestMethod.POST) | |
| 63 | + public Map<String, Object> updateRoadInfo(GeoRoad road){ | |
| 64 | + return geoDataService.updateRoadInfo(road); | |
| 65 | + } | |
| 66 | + | |
| 67 | + @RequestMapping(value = "destroyRoad",method = RequestMethod.POST) | |
| 68 | + public Map<String, Object> destroyRoad(GeoRoad road){ | |
| 69 | + return geoDataService.destroyRoad(road); | |
| 70 | + } | |
| 71 | + | |
| 72 | + @RequestMapping("findVersionInfo") | |
| 73 | + public Map<String, Object> findVersionInfo(@RequestParam String lineCode){ | |
| 74 | + return geoDataService.findVersionInfo(lineCode); | |
| 75 | + } | |
| 76 | + | |
| 77 | + @RequestMapping(value = "addNewLineVersion",method = RequestMethod.POST) | |
| 78 | + public Map<String, Object> addNewLineVersion(@RequestParam Map<String, Object> map){ | |
| 79 | + return geoDataService.addNewLineVersion(map); | |
| 80 | + } | |
| 81 | + | |
| 82 | + @RequestMapping(value = "deleteLineVersion",method = RequestMethod.POST) | |
| 83 | + public Map<String, Object> deleteLineVersion(@RequestParam String lineCode,@RequestParam int version){ | |
| 84 | + return geoDataService.deleteLineVersion(lineCode, version); | |
| 85 | + } | |
| 86 | + | |
| 87 | + @RequestMapping("findFutureVersion") | |
| 88 | + public Map<String, Object> findFutureVersion(@RequestParam String lineCode){ | |
| 89 | + return geoDataService.findFutureVersion(lineCode); | |
| 90 | + } | |
| 91 | + | |
| 92 | + @RequestMapping(value = "addEnableInfo",method = RequestMethod.POST) | |
| 93 | + public Map<String, Object> addEnableInfo(@RequestParam String lineCode,@RequestParam int versions, @RequestParam String startDate){ | |
| 94 | + return geoDataService.addEnableInfo(lineCode, versions, startDate); | |
| 95 | + } | |
| 43 | 96 | } |
| 44 | 97 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/controller/gps/GpsController.java
| ... | ... | @@ -3,6 +3,8 @@ package com.bsth.controller.gps; |
| 3 | 3 | import com.bsth.data.BasicData; |
| 4 | 4 | import com.bsth.data.gpsdata_v2.GpsRealData; |
| 5 | 5 | import com.bsth.data.gpsdata_v2.entity.GpsEntity; |
| 6 | +import com.bsth.data.gpsdata_v2.handlers.overspeed.GpsOverspeed; | |
| 7 | +import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | |
| 6 | 8 | import com.bsth.service.gps.GpsService; |
| 7 | 9 | import com.bsth.service.gps.entity.GpsSpeed; |
| 8 | 10 | import com.google.common.base.Splitter; |
| ... | ... | @@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.*; |
| 12 | 14 | import javax.servlet.http.HttpServletResponse; |
| 13 | 15 | import java.text.ParseException; |
| 14 | 16 | import java.util.ArrayList; |
| 17 | +import java.util.HashMap; | |
| 15 | 18 | import java.util.List; |
| 16 | 19 | import java.util.Map; |
| 17 | 20 | |
| ... | ... | @@ -25,6 +28,9 @@ public class GpsController { |
| 25 | 28 | @Autowired |
| 26 | 29 | GpsService gpsService; |
| 27 | 30 | |
| 31 | + @Autowired | |
| 32 | + OverspeedProcess overspeedProcess; | |
| 33 | + | |
| 28 | 34 | @RequestMapping(value = "/real/all") |
| 29 | 35 | public Map<String, Object> search(@RequestParam Map<String, Object> map, |
| 30 | 36 | @RequestParam(defaultValue = "0") int page, |
| ... | ... | @@ -42,8 +48,17 @@ public class GpsController { |
| 42 | 48 | } |
| 43 | 49 | |
| 44 | 50 | @RequestMapping(value = "/real/line") |
| 45 | - public List<GpsEntity> findByLineCodes(@RequestParam String lineCodes) { | |
| 46 | - return gpsRealData.get(Splitter.on(",").splitToList(lineCodes)); | |
| 51 | + public Map<String, Object> findByLineCodes(@RequestParam String lineCodes) { | |
| 52 | + Map<String, Object> rs = new HashMap(); | |
| 53 | + List<String> lineArray = Splitter.on(",").splitToList(lineCodes); | |
| 54 | + //实时gps | |
| 55 | + List<GpsEntity> gpsList = gpsRealData.get(lineArray); | |
| 56 | + | |
| 57 | + //超速信息 | |
| 58 | + List<GpsOverspeed> overspeedList = overspeedProcess.findByLines(lineArray); | |
| 59 | + rs.put("gpsList", gpsList); | |
| 60 | + rs.put("overspeedList", overspeedList); | |
| 61 | + return rs; | |
| 47 | 62 | } |
| 48 | 63 | |
| 49 | 64 | @RequestMapping(value = "/allDevices") |
| ... | ... | @@ -197,5 +212,15 @@ public class GpsController { |
| 197 | 212 | map.put("pageData","10"); |
| 198 | 213 | return gpsService.Pagequery(map); |
| 199 | 214 | } |
| 215 | + | |
| 216 | + /** | |
| 217 | + * 获取线路下所有车辆,包括实时设备 和 计划排班 | |
| 218 | + * @param lineCode | |
| 219 | + * @return | |
| 220 | + */ | |
| 221 | + @RequestMapping(value = "/allCarsByLine",method = RequestMethod.GET) | |
| 222 | + public Map<String, Object> allCarsByLine(String lineCode){ | |
| 223 | + return gpsService.allCarsByLine(lineCode); | |
| 224 | + } | |
| 200 | 225 | |
| 201 | 226 | } | ... | ... |
src/main/java/com/bsth/controller/oil/YlbController.java
| ... | ... | @@ -229,6 +229,12 @@ public class YlbController extends BaseController<Ylb, Integer>{ |
| 229 | 229 | return list; |
| 230 | 230 | } |
| 231 | 231 | |
| 232 | + @RequestMapping(value = "/checkDate",method = RequestMethod.GET) | |
| 233 | + public String checkDate(@RequestParam Map<String, Object> map){ | |
| 234 | + String list=ylbService.checkDate(map); | |
| 235 | + return list; | |
| 236 | + } | |
| 237 | + | |
| 232 | 238 | @RequestMapping(value = "/sumYlb",method = RequestMethod.GET) |
| 233 | 239 | public Map<String, Object> sumYlb(@RequestParam Map<String, Object> map){ |
| 234 | 240 | Map<String, Object> list=ylbService.sumYlb(map); | ... | ... |
src/main/java/com/bsth/controller/oil/YlxxbController.java
| ... | ... | @@ -65,4 +65,16 @@ public class YlxxbController extends BaseController<Ylxxb, Integer>{ |
| 65 | 65 | return list; |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | + @RequestMapping(value="/saveYlxxb",method = RequestMethod.POST) | |
| 69 | + public Map<String, Object> savejzl(@RequestParam Map<String, Object> map){ | |
| 70 | + Map<String, Object> maps=new HashMap<>(); | |
| 71 | + try { | |
| 72 | + maps = service.saveYlxxb(map); | |
| 73 | + } catch (Exception e) { | |
| 74 | + // TODO Auto-generated catch block | |
| 75 | + e.printStackTrace(); | |
| 76 | + } | |
| 77 | + return maps; | |
| 78 | + } | |
| 79 | + | |
| 68 | 80 | } | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ChildTaskPlanController.java
| ... | ... | @@ -27,4 +27,9 @@ public class ChildTaskPlanController extends BaseController<ChildTaskPlan, Long> |
| 27 | 27 | public Map<String, Object> delHistory(@PathVariable("id") Long id){ |
| 28 | 28 | return childTaskPlanService.delHistory(id); |
| 29 | 29 | } |
| 30 | + | |
| 31 | + @RequestMapping(value = "update", method = RequestMethod.POST) | |
| 32 | + public Map<String, Object> update(ChildTaskPlan childTask){ | |
| 33 | + return childTaskPlanService.update(childTask); | |
| 34 | + } | |
| 30 | 35 | } | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| ... | ... | @@ -483,6 +483,11 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 483 | 483 | public Map<String, Object> MapById(@RequestParam("id") Long id){ |
| 484 | 484 | return scheduleRealInfoService.MapById(id); |
| 485 | 485 | } |
| 486 | + | |
| 487 | + @RequestMapping(value="/MapByIdQp",method = RequestMethod.GET) | |
| 488 | + public Map<String, Object> MapByIdQp(@RequestParam("id") Long id){ | |
| 489 | + return scheduleRealInfoService.MapByIdQp(id); | |
| 490 | + } | |
| 486 | 491 | |
| 487 | 492 | /** |
| 488 | 493 | * @Title: scheduleDaily | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ServiceDataInterface.java
| ... | ... | @@ -63,7 +63,9 @@ public class ServiceDataInterface { |
| 63 | 63 | map = new HashMap<>(); |
| 64 | 64 | map.put("clZbh", sch.getClZbh()); |
| 65 | 65 | map.put("jGh", sch.getjGh()); |
| 66 | + map.put("jName", sch.getjGh()); | |
| 66 | 67 | map.put("sGh", sch.getsGh()); |
| 68 | + map.put("sName", sch.getsGh()); | |
| 67 | 69 | map.put("lpName", sch.getLpName()); |
| 68 | 70 | map.put("xlBm", sch.getXlBm()); |
| 69 | 71 | map.put("xlName", sch.getXlName()); | ... | ... |
src/main/java/com/bsth/controller/realcontrol/summary/TempSchSituationController.java
0 → 100644
| 1 | +package com.bsth.controller.realcontrol.summary; | |
| 2 | + | |
| 3 | +import com.bsth.controller.BaseController; | |
| 4 | +import com.bsth.data.summary.entity.TempSchSituation; | |
| 5 | +import com.bsth.data.summary.service.TempSchSituationService; | |
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 8 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 9 | +import org.springframework.web.bind.annotation.RestController; | |
| 10 | + | |
| 11 | +import javax.servlet.http.HttpServletRequest; | |
| 12 | +import javax.servlet.http.HttpServletResponse; | |
| 13 | +import java.util.Map; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * Created by panzhao on 2017/11/1. | |
| 17 | + */ | |
| 18 | +@RestController | |
| 19 | +@RequestMapping("/summary/temp_sch") | |
| 20 | +public class TempSchSituationController extends BaseController<TempSchSituation, Long> { | |
| 21 | + | |
| 22 | + @Autowired | |
| 23 | + TempSchSituationService tempSchSituationService; | |
| 24 | + | |
| 25 | + @RequestMapping("excel") | |
| 26 | + public void excel(@RequestParam Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) { | |
| 27 | + tempSchSituationService.excel(map, request, response); | |
| 28 | + } | |
| 29 | +} | ... | ... |
src/main/java/com/bsth/controller/report/ReportController.java
| ... | ... | @@ -209,6 +209,12 @@ public class ReportController { |
| 209 | 209 | return service.historyMessageCount(line, date, code); |
| 210 | 210 | } |
| 211 | 211 | |
| 212 | + @RequestMapping(value = "/historyMessageList", method = RequestMethod.GET) | |
| 213 | + public List<Object[]> historyMessageList(@RequestParam String line, @RequestParam String date, | |
| 214 | + @RequestParam String code,@RequestParam String type) { | |
| 215 | + return service.historyMessageList(line, date, code, type); | |
| 216 | + } | |
| 217 | + | |
| 212 | 218 | @RequestMapping(value = "/tbodyTime1", method = RequestMethod.GET) |
| 213 | 219 | public Map<String, Object> tbodyTime1(@RequestParam String line,@RequestParam String ttinfo) { |
| 214 | 220 | return service.tbodyTime1(line, ttinfo); | ... | ... |
src/main/java/com/bsth/controller/schedule/core/TTInfoController.java
| ... | ... | @@ -2,16 +2,14 @@ package com.bsth.controller.schedule.core; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.common.ResponseCode; |
| 4 | 4 | import com.bsth.controller.schedule.BController; |
| 5 | -import com.bsth.entity.LineVersions; | |
| 6 | 5 | import com.bsth.entity.schedule.TTInfo; |
| 7 | -import com.bsth.service.LineVersionsService; | |
| 8 | 6 | import com.bsth.service.schedule.TTInfoService; |
| 9 | 7 | import com.bsth.service.schedule.exception.ScheduleException; |
| 10 | -import org.joda.time.DateTime; | |
| 11 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | 9 | import org.springframework.web.bind.annotation.*; |
| 13 | 10 | |
| 14 | -import java.util.*; | |
| 11 | +import java.util.HashMap; | |
| 12 | +import java.util.Map; | |
| 15 | 13 | |
| 16 | 14 | /** |
| 17 | 15 | * Created by xu on 16/12/20. |
| ... | ... | @@ -21,47 +19,33 @@ import java.util.*; |
| 21 | 19 | public class TTInfoController extends BController<TTInfo, Long> { |
| 22 | 20 | @Autowired |
| 23 | 21 | private TTInfoService ttInfoService; |
| 24 | - @Autowired | |
| 25 | - private LineVersionsService lineVersionsService; | |
| 26 | 22 | |
| 27 | 23 | @RequestMapping(value = "/stationroute/{lineid}", method = RequestMethod.GET) |
| 28 | 24 | public Map<String, Object> getLineStationRouteVersions(@PathVariable(value = "lineid") Integer lineid) { |
| 29 | 25 | Map<String, Object> rtn = new HashMap<>(); |
| 30 | 26 | try { |
| 31 | - List<LineVersions> lineVersionses = lineVersionsService.findByLineCode(lineid); | |
| 32 | - Collections.sort(lineVersionses, new Comparator<LineVersions>() { | |
| 33 | - @Override | |
| 34 | - public int compare(LineVersions o1, LineVersions o2) { | |
| 35 | - if (o1.getVersions() > o2.getVersions()) { | |
| 36 | - return -1; | |
| 37 | - } else if (o1.getVersions() < o2.getVersions()) { | |
| 38 | - return 1; | |
| 39 | - } else { | |
| 40 | - return 0; | |
| 41 | - } | |
| 42 | - } | |
| 43 | - }); | |
| 44 | - | |
| 45 | - // 取最近2条记录 | |
| 46 | - List<Map<String, Object>> mapList = new ArrayList<>(); | |
| 47 | - for (LineVersions lv: lineVersionses) { | |
| 48 | - String vname = lv.getName(); | |
| 49 | - String rq = lv.getStartDate() == null ? "未知启用日期" : new DateTime(lv.getStartDate()).toString("YYYY年MM月dd日"); | |
| 50 | - String sdesc = lv.getStatus() == 0 ? "历史" : (lv.getStatus() == 1 ? "当前" : "待更新"); | |
| 51 | - | |
| 52 | - Map<String, Object> value = new HashMap<>(); | |
| 53 | - value.put("desc", vname + "-" + rq + "-" + sdesc); | |
| 54 | - value.put("version", lv.getVersions()); | |
| 55 | - | |
| 56 | - mapList.add(value); | |
| 57 | - | |
| 58 | - if (mapList.size() == 2) { | |
| 59 | - break; | |
| 60 | - } | |
| 61 | - } | |
| 27 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 28 | + rtn.put("data", ttInfoService.getLineStationRouteVersions(lineid)); | |
| 29 | + | |
| 30 | + } catch (Exception exp) { | |
| 31 | + rtn.put("status", ResponseCode.ERROR); | |
| 32 | + rtn.put("msg", exp.getMessage()); | |
| 33 | + } | |
| 34 | + | |
| 35 | + return rtn; | |
| 62 | 36 | |
| 37 | + } | |
| 38 | + | |
| 39 | + @RequestMapping(value = "/versiondesc/{lineid}/{version}") | |
| 40 | + public Map<String, Object> getLineVersionDesc( | |
| 41 | + @PathVariable(value = "lineid") Integer lineid, | |
| 42 | + @PathVariable(value = "version") Integer version) { | |
| 43 | + Map<String, Object> rtn = new HashMap<>(); | |
| 44 | + try { | |
| 45 | + Map<String, String> desc = new HashMap<>(); | |
| 46 | + desc.put("desc", ttInfoService.getLineVersionDesc(lineid, version)); | |
| 63 | 47 | rtn.put("status", ResponseCode.SUCCESS); |
| 64 | - rtn.put("data", mapList); | |
| 48 | + rtn.put("data", desc); | |
| 65 | 49 | |
| 66 | 50 | } catch (Exception exp) { |
| 67 | 51 | rtn.put("status", ResponseCode.ERROR); |
| ... | ... | @@ -69,7 +53,23 @@ public class TTInfoController extends BController<TTInfo, Long> { |
| 69 | 53 | } |
| 70 | 54 | |
| 71 | 55 | return rtn; |
| 56 | + } | |
| 57 | + | |
| 58 | + @RequestMapping(value = "/versiondesc2/{lineid}/{status}") | |
| 59 | + public Map<String, Object> getLineVersionDesc2( | |
| 60 | + @PathVariable(value = "lineid") Integer lineid, | |
| 61 | + @PathVariable(value = "status") Integer status) { | |
| 62 | + Map<String, Object> rtn = new HashMap<>(); | |
| 63 | + try { | |
| 64 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 65 | + rtn.put("data", ttInfoService.getLineVersions(lineid, status)); | |
| 72 | 66 | |
| 67 | + } catch (Exception exp) { | |
| 68 | + rtn.put("status", ResponseCode.ERROR); | |
| 69 | + rtn.put("msg", exp.getMessage()); | |
| 70 | + } | |
| 71 | + | |
| 72 | + return rtn; | |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | @RequestMapping(value = "/validate_name", method = RequestMethod.GET) | ... | ... |
src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
| ... | ... | @@ -5,9 +5,13 @@ import com.bsth.controller.schedule.BController; |
| 5 | 5 | import com.bsth.entity.schedule.TTInfoDetail; |
| 6 | 6 | import com.bsth.service.schedule.TTInfoDetailService; |
| 7 | 7 | import com.bsth.service.schedule.datatools.TTInfoDetailForEdit; |
| 8 | +import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData; | |
| 9 | +import com.bsth.service.schedule.utils.DataToolsFile; | |
| 8 | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 9 | 11 | import org.springframework.web.bind.annotation.*; |
| 10 | 12 | |
| 13 | +import javax.servlet.http.HttpServletResponse; | |
| 14 | +import java.io.*; | |
| 11 | 15 | import java.util.HashMap; |
| 12 | 16 | import java.util.List; |
| 13 | 17 | import java.util.Map; |
| ... | ... | @@ -32,30 +36,18 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> { |
| 32 | 36 | * @param sheetname sheet名字 |
| 33 | 37 | * @param lineid 线路id |
| 34 | 38 | * @param linename 线路名称 |
| 39 | + * @param lineversion 线路版本 | |
| 35 | 40 | * @return |
| 36 | 41 | */ |
| 37 | 42 | @RequestMapping(value = "/validate/sheet", method = RequestMethod.POST) |
| 38 | 43 | public Map<String, Object> validate_sheet( |
| 39 | - String filename, String sheetname, Integer lineid, String linename, | |
| 40 | - Integer zdlytype, Integer zdlyversion) { | |
| 44 | + String filename, String sheetname, Integer lineid, String linename, Integer lineversion) { | |
| 41 | 45 | Map<String, Object> rtn = new HashMap<>(); |
| 42 | 46 | try { |
| 43 | - if (zdlytype == null) { | |
| 44 | - throw new Exception("请选择路由版本类型"); | |
| 45 | - } else { | |
| 46 | - if (zdlytype == 1) { | |
| 47 | - ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, null); | |
| 48 | - } else if (zdlytype == 2) { | |
| 49 | - if (zdlyversion == null || zdlyversion == -1) { | |
| 50 | - throw new Exception("请选择具体版本"); | |
| 51 | - } else { | |
| 52 | - ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, zdlyversion); | |
| 53 | - } | |
| 54 | - } else { | |
| 55 | - throw new Exception("未知路由版本类型"); | |
| 56 | - } | |
| 47 | + if (lineversion == null) { | |
| 48 | + throw new Exception("线路版本未知"); | |
| 57 | 49 | } |
| 58 | - | |
| 50 | + ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, lineversion); | |
| 59 | 51 | rtn.put("status", ResponseCode.SUCCESS); |
| 60 | 52 | } catch (Exception exp) { |
| 61 | 53 | rtn.put("status", ResponseCode.ERROR); |
| ... | ... | @@ -108,10 +100,10 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> { |
| 108 | 100 | } |
| 109 | 101 | |
| 110 | 102 | @RequestMapping(value = "/zd_tcc", method = RequestMethod.GET) |
| 111 | - public Map<String, Object> getZdAndTccInfo(Integer lineid, Integer xldir) { | |
| 103 | + public Map<String, Object> getZdAndTccInfo(Integer lineid, Integer xldir, Integer lineversion) { | |
| 112 | 104 | Map<String, Object> rtn = new HashMap<>(); |
| 113 | 105 | try { |
| 114 | - List<Map<String, Object>> list = ttInfoDetailService.findZdAndTcc(lineid, xldir); | |
| 106 | + List<Map<String, Object>> list = ttInfoDetailService.findZdAndTcc(lineid, xldir, lineversion); | |
| 115 | 107 | rtn.put("status", ResponseCode.SUCCESS); |
| 116 | 108 | rtn.put("data", list); |
| 117 | 109 | } catch (Exception exp) { |
| ... | ... | @@ -132,4 +124,32 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> { |
| 132 | 124 | public Map<String, Object> skbDetailMxSave(@RequestParam Map<String, Object> entities){ |
| 133 | 125 | return ttInfoDetailService.skbDetailMxSave(entities); |
| 134 | 126 | } |
| 127 | + | |
| 128 | + | |
| 129 | + @RequestMapping(value = "/exportDTDFile", method = RequestMethod.POST) | |
| 130 | + public void exportFile( | |
| 131 | + @RequestBody TTinfoDetailDynamicData.DTInfos dtInfos, | |
| 132 | + HttpServletResponse response) throws Exception { | |
| 133 | + DataToolsFile dataToolsFile = ttInfoDetailService.exportDynamicTTinfo(dtInfos); | |
| 134 | + // 流输出导出文件 | |
| 135 | + response.setHeader("content-type", "application/octet-stream"); | |
| 136 | + response.setHeader("Content-Disposition", "attachment; filename=" + dataToolsFile.getFile().getName()); | |
| 137 | + response.setContentType("application/octet-stream"); | |
| 138 | + | |
| 139 | + OutputStream os = response.getOutputStream(); | |
| 140 | + BufferedOutputStream bos = new BufferedOutputStream(os); | |
| 141 | + | |
| 142 | + InputStream is = new FileInputStream(dataToolsFile.getFile()); | |
| 143 | + BufferedInputStream bis = new BufferedInputStream(is); | |
| 144 | + | |
| 145 | + int length = 0; | |
| 146 | + byte[] temp = new byte[1 * 1024 * 10]; | |
| 147 | + while ((length = bis.read(temp)) != -1) { | |
| 148 | + bos.write(temp, 0, length); | |
| 149 | + } | |
| 150 | + bos.flush(); | |
| 151 | + bis.close(); | |
| 152 | + bos.close(); | |
| 153 | + is.close(); | |
| 154 | + } | |
| 135 | 155 | } | ... | ... |
src/main/java/com/bsth/data/car_out_info/CarOutInfoHandler.java
| 1 | 1 | package com.bsth.data.car_out_info; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.data.BasicData; |
| 4 | +import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | |
| 5 | +import com.bsth.data.gpsdata_v2.entity.StationRoute; | |
| 4 | 6 | import com.bsth.data.schedule.DayOfSchedule; |
| 5 | 7 | import com.bsth.data.schedule.ScheduleComparator; |
| 6 | 8 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| ... | ... | @@ -43,7 +45,7 @@ public class CarOutInfoHandler { |
| 43 | 45 | bcTypeMap.put("ldks", "两点间空驶"); |
| 44 | 46 | } |
| 45 | 47 | |
| 46 | - private static ScheduleComparator.DFSJ schDFSJComparator = new ScheduleComparator.DFSJ(); | |
| 48 | + private static ScheduleComparator.DFSJ2 schDFSJComparator = new ScheduleComparator.DFSJ2(); | |
| 47 | 49 | |
| 48 | 50 | @Autowired |
| 49 | 51 | JdbcTemplate jdbcTemplate; |
| ... | ... | @@ -166,6 +168,11 @@ public class CarOutInfoHandler { |
| 166 | 168 | * @param list |
| 167 | 169 | * @return |
| 168 | 170 | */ |
| 171 | + private static String[] fls = new String[]{"in","out","ldks","venting","major"}; | |
| 172 | + private static List<String> clearTypes; | |
| 173 | + static { | |
| 174 | + clearTypes = Arrays.asList(fls); | |
| 175 | + } | |
| 169 | 176 | private ScheduleRealInfo[] nexts(List<ScheduleRealInfo> list) { |
| 170 | 177 | ScheduleRealInfo[] array = new ScheduleRealInfo[3]; |
| 171 | 178 | Collections.sort(list, schDFSJComparator); |
| ... | ... | @@ -181,11 +188,16 @@ public class CarOutInfoHandler { |
| 181 | 188 | continue; |
| 182 | 189 | |
| 183 | 190 | //进场、出场、2点间空驶 |
| 184 | - if (sch.getBcType().equals("in") | |
| 185 | - || sch.getBcType().equals("out") | |
| 186 | - || sch.getBcType().equals("ldks")) | |
| 191 | + if (clearTypes.contains(sch.getBcType())) | |
| 187 | 192 | continue; |
| 188 | 193 | |
| 194 | + //区间 | |
| 195 | + if (sch.getBcType().equals("region")){ | |
| 196 | + //是否起点发出 | |
| 197 | + if(!isStartOut(sch)) | |
| 198 | + continue; | |
| 199 | + } | |
| 200 | + | |
| 189 | 201 | //有实发实达时间的 |
| 190 | 202 | if (StringUtils.isNotEmpty(sch.getFcsjActual()) |
| 191 | 203 | || StringUtils.isNotEmpty(sch.getZdsjActual())) |
| ... | ... | @@ -199,4 +211,30 @@ public class CarOutInfoHandler { |
| 199 | 211 | } |
| 200 | 212 | return array; |
| 201 | 213 | } |
| 214 | + | |
| 215 | + private static StationRouteComp sComp = new StationRouteComp(); | |
| 216 | + private boolean isStartOut(ScheduleRealInfo sch) { | |
| 217 | + try{ | |
| 218 | + List<StationRoute> list = GeoCacheData.getStationRoute(sch.getXlBm(), Integer.parseInt(sch.getXlDir())); | |
| 219 | + | |
| 220 | + if(null == list && list.size() == 0) | |
| 221 | + return false; | |
| 222 | + //排序 | |
| 223 | + Collections.sort(list, sComp); | |
| 224 | + | |
| 225 | + if(sch.getQdzName().equals(list.get(0).getName())) | |
| 226 | + return true; | |
| 227 | + }catch (Exception e){ | |
| 228 | + logger.error("", e); | |
| 229 | + } | |
| 230 | + return false; | |
| 231 | + } | |
| 232 | + | |
| 233 | + private static class StationRouteComp implements Comparator<StationRoute> { | |
| 234 | + | |
| 235 | + @Override | |
| 236 | + public int compare(StationRoute s1, StationRoute s2) { | |
| 237 | + return s1.getRouteSort() - s2.getRouteSort(); | |
| 238 | + } | |
| 239 | + } | |
| 202 | 240 | } | ... | ... |
src/main/java/com/bsth/data/directive/DirectivesPstThread.java
| ... | ... | @@ -7,6 +7,8 @@ import com.bsth.entity.directive.Directive; |
| 7 | 7 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 8 | 8 | import com.bsth.repository.directive.D60Repository; |
| 9 | 9 | import com.bsth.repository.directive.D64Repository; |
| 10 | +import org.joda.time.format.DateTimeFormat; | |
| 11 | +import org.joda.time.format.DateTimeFormatter; | |
| 10 | 12 | import org.slf4j.Logger; |
| 11 | 13 | import org.slf4j.LoggerFactory; |
| 12 | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -32,6 +34,8 @@ public class DirectivesPstThread extends Thread { |
| 32 | 34 | @Autowired |
| 33 | 35 | DayOfSchedule dayOfSchedule; |
| 34 | 36 | |
| 37 | + private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); | |
| 38 | + | |
| 35 | 39 | @Override |
| 36 | 40 | public void run() { |
| 37 | 41 | |
| ... | ... | @@ -52,6 +56,8 @@ public class DirectivesPstThread extends Thread { |
| 52 | 56 | continue; |
| 53 | 57 | } |
| 54 | 58 | } |
| 59 | + //日期 | |
| 60 | + d60.setRq(fmtyyyyMMdd.print(d60.getTimestamp())); | |
| 55 | 61 | d60Repository.save(d60); |
| 56 | 62 | } |
| 57 | 63 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/DataHandleProcess.java
| 1 | 1 | package com.bsth.data.gpsdata_v2; |
| 2 | 2 | |
| 3 | +import com.alibaba.fastjson.JSON; | |
| 3 | 4 | import com.bsth.data.gpsdata_v2.cache.GpsCacheData; |
| 4 | 5 | import com.bsth.data.gpsdata_v2.entity.GpsEntity; |
| 5 | 6 | import com.bsth.data.gpsdata_v2.handlers.*; |
| ... | ... | @@ -11,7 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired; |
| 11 | 12 | import org.springframework.stereotype.Component; |
| 12 | 13 | |
| 13 | 14 | import java.util.*; |
| 14 | -import java.util.concurrent.*; | |
| 15 | +import java.util.concurrent.CountDownLatch; | |
| 16 | +import java.util.concurrent.ExecutorService; | |
| 17 | +import java.util.concurrent.Executors; | |
| 15 | 18 | |
| 16 | 19 | /** |
| 17 | 20 | * 实时信号数据处理 |
| ... | ... | @@ -38,7 +41,7 @@ public class DataHandleProcess { |
| 38 | 41 | |
| 39 | 42 | static Logger logger = LoggerFactory.getLogger(DataHandleProcess.class); |
| 40 | 43 | |
| 41 | - final static int POOL_SIZE = 25; | |
| 44 | + final static int POOL_SIZE = 20; | |
| 42 | 45 | |
| 43 | 46 | static ExecutorService threadPool = Executors.newFixedThreadPool(POOL_SIZE + 1); |
| 44 | 47 | public static CountDownLatch count; |
| ... | ... | @@ -73,38 +76,16 @@ public class DataHandleProcess { |
| 73 | 76 | logger.info("analyse gps size: " + list.size() + ", ks: " + ks.size()); |
| 74 | 77 | count = new CountDownLatch(ks.size()); |
| 75 | 78 | |
| 76 | - List<Future> fRs = new ArrayList<>(ks.size()); | |
| 79 | + logger.info(JSON.toJSONString(ks)); | |
| 77 | 80 | for (Integer index : ks) { |
| 78 | - fRs.add(threadPool.submit(new SignalHandleThread(dataListMap.get(index), count))); | |
| 81 | + //logger.info("execute index: " + index); | |
| 82 | + threadPool.execute(new SignalHandleThread(dataListMap.get(index), count)); | |
| 79 | 83 | } |
| 80 | 84 | |
| 81 | - //按线路分组gps | |
| 82 | - /*ArrayListMultimap multimap = ArrayListMultimap.create(); | |
| 83 | - for (GpsEntity gps : list) { | |
| 84 | - multimap.put(gps.getLineId(), gps); | |
| 85 | - } | |
| 86 | - | |
| 87 | - Set<String> ks = multimap.keySet(); | |
| 88 | - | |
| 89 | - logger.info("analyse gps size: " + list.size() + ", ks: " + ks.size()); | |
| 90 | - count = new CountDownLatch(ks.size()); | |
| 91 | - | |
| 92 | - for (String lineCode : ks) { | |
| 93 | - threadPool.execute(new SignalHandleThread(multimap.get(lineCode), count)); | |
| 94 | - }*/ | |
| 95 | 85 | |
| 96 | 86 | //等待子线程结束 |
| 97 | 87 | count.await(); |
| 98 | 88 | |
| 99 | - for (Future f : fRs) { | |
| 100 | - try { | |
| 101 | - f.get(); | |
| 102 | - } catch (InterruptedException e) { | |
| 103 | - } catch (ExecutionException e) { | |
| 104 | - logger.error(e.getCause().getMessage()); | |
| 105 | - } | |
| 106 | - } | |
| 107 | - | |
| 108 | 89 | //加入实时gps对照 |
| 109 | 90 | for (GpsEntity gps : list) |
| 110 | 91 | gpsRealData.put(gps); |
| ... | ... | @@ -129,36 +110,45 @@ public class DataHandleProcess { |
| 129 | 110 | |
| 130 | 111 | @Override |
| 131 | 112 | public void run() { |
| 132 | - //try { | |
| 133 | - Collections.sort(list, comp); | |
| 134 | - for (GpsEntity gps : list) { | |
| 135 | - try { | |
| 136 | - if(StringUtils.isEmpty(gps.getNbbm())) | |
| 137 | - continue; | |
| 138 | - if (Math.abs(gps.getTimestamp() - gps.getServerTimestamp()) > 1000 * 60 * 20) | |
| 139 | - continue; | |
| 140 | - | |
| 141 | - gpsStateProcess.process(gps);//状态处理 | |
| 142 | - stationInsideProcess.process(gps);//场站内外判定 | |
| 143 | - reverseRouteProcess.process(gps);//反向路由处理 | |
| 144 | - abnormalStateProcess.process(gps);//超速越界 | |
| 145 | - | |
| 146 | - inStationProcess.process(gps);//进站 | |
| 147 | - outStationProcess.process(gps);//出站 | |
| 148 | - | |
| 149 | - GpsCacheData.putGps(gps);//历史gps缓存 | |
| 150 | - } catch (Exception e) { | |
| 151 | - logger.error("", e); | |
| 113 | + try { | |
| 114 | + Collections.sort(list, comp); | |
| 115 | + //logger.info("sort end --" + Thread.currentThread().getName() + " -list size: " + list.size()); | |
| 116 | + | |
| 117 | + GpsEntity gps; | |
| 118 | + for(int i = 0,len = list.size(); i< len ;i ++){ | |
| 119 | + gps = list.get(i); | |
| 120 | + | |
| 121 | + //logger.info("run |--" + Thread.currentThread().getName() + " -i: " + i); | |
| 122 | + try { | |
| 123 | + if (StringUtils.isEmpty(gps.getNbbm())) | |
| 124 | + continue; | |
| 125 | + if (Math.abs(gps.getTimestamp() - gps.getServerTimestamp()) > 1000 * 60 * 20) | |
| 126 | + continue; | |
| 127 | + | |
| 128 | + gpsStateProcess.process(gps);//状态处理 | |
| 129 | + stationInsideProcess.process(gps);//场站内外判定 | |
| 130 | + reverseRouteProcess.process(gps);//反向路由处理 | |
| 131 | + abnormalStateProcess.process(gps);//超速越界 | |
| 132 | + | |
| 133 | + inStationProcess.process(gps);//进站 | |
| 134 | + outStationProcess.process(gps);//出站 | |
| 135 | + | |
| 136 | + | |
| 137 | + //logger.info("put start --" + Thread.currentThread().getName() + " -i: " + i); | |
| 138 | + GpsCacheData.putGps(gps);//历史gps缓存 | |
| 139 | + //logger.info("put end --" + Thread.currentThread().getName() + " -i: " + i); | |
| 140 | + } catch (Throwable e) { | |
| 141 | + logger.error("", e); | |
| 142 | + } | |
| 152 | 143 | } |
| 153 | - } | |
| 154 | 144 | |
| 155 | - logger.info(Thread.currentThread().getName() + " -countDown : " + count.getCount()); | |
| 156 | - count.countDown(); | |
| 157 | - /*} finally { | |
| 145 | + //logger.info("for end --" + Thread.currentThread().getName() + " -list size: " + list.size()); | |
| 146 | + | |
| 147 | + } finally { | |
| 158 | 148 | if (count != null) |
| 159 | 149 | count.countDown(); |
| 160 | - logger.info(Thread.currentThread().getName() + " -countDown : " + count.getCount()); | |
| 161 | - }*/ | |
| 150 | + //logger.info(Thread.currentThread().getName() + " -countDown : " + count.getCount()); | |
| 151 | + } | |
| 162 | 152 | } |
| 163 | 153 | } |
| 164 | 154 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/GpsRealData.java
| ... | ... | @@ -123,7 +123,13 @@ public class GpsRealData { |
| 123 | 123 | * @Title: get @Description: TODO(线路编码获取GPS集合) @throws |
| 124 | 124 | */ |
| 125 | 125 | public List<GpsEntity> getByLine(String lineCode) { |
| 126 | - NavigableSet<String> set = lineCode2Devices.get(lineCode); | |
| 126 | + NavigableSet<String> set = lineCode2Devices.get(lineCode);//实际车载 | |
| 127 | + Set<String> nbbmSet = dayOfSchedule.findCarByLineCode(lineCode);//计划用车 | |
| 128 | + | |
| 129 | + Map<String, String> nbbm2deviceMap = BasicData.deviceId2NbbmMap.inverse(); | |
| 130 | + for(String nbbm : nbbmSet){ | |
| 131 | + set.add(nbbm2deviceMap.get(nbbm)); | |
| 132 | + } | |
| 127 | 133 | |
| 128 | 134 | List<GpsEntity> rs = new ArrayList<>(); |
| 129 | 135 | GpsEntity gps; |
| ... | ... | @@ -135,14 +141,28 @@ public class GpsRealData { |
| 135 | 141 | continue; |
| 136 | 142 | |
| 137 | 143 | sch = dayOfSchedule.execPlanMap().get(gps.getNbbm()); |
| 138 | - if (null != sch) | |
| 144 | + if (null != sch){ | |
| 139 | 145 | gps.setSchId(sch.getId()); |
| 146 | + if(!sch.getXlBm().equals(lineCode)){ | |
| 147 | + //车辆在其他线路营运 | |
| 148 | + gps.setRemark("执行 " + sch.getXlName() + " " + sch.getDfsj() + " 班次"); | |
| 149 | + gps.setPlanCode(sch.getXlBm()); | |
| 150 | + } | |
| 151 | + else | |
| 152 | + gps.setRemark(null); | |
| 153 | + }else | |
| 154 | + gps.setRemark(null); | |
| 155 | + | |
| 140 | 156 | rs.add(gps); |
| 141 | 157 | } |
| 142 | 158 | |
| 143 | 159 | return rs; |
| 144 | 160 | } |
| 145 | 161 | |
| 162 | + public static Set<String> findDevices(String lineCode){ | |
| 163 | + return lineCode2Devices.get(lineCode); | |
| 164 | + } | |
| 165 | + | |
| 146 | 166 | public List<GpsEntity> get(List<String> pArray) { |
| 147 | 167 | List<GpsEntity> list = new ArrayList<>(); |
| 148 | 168 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/cache/GeoCacheData.java
| ... | ... | @@ -139,7 +139,7 @@ public class GeoCacheData { |
| 139 | 139 | |
| 140 | 140 | private void loadTccMapData(){ |
| 141 | 141 | //加载停车场数据 |
| 142 | - String sql = "select PARK_CODE, ST_AsText(G_PARK_POINT) as G_PARK_POINT from bsth_c_car_park where park_code is not null and b_park_point is not null"; | |
| 142 | + String sql = "select PARK_CODE, ST_AsText(G_PARK_POINT) as G_PARK_POINT from bsth_c_car_park where park_code is not null and b_park_point is not null and destroy=0"; | |
| 143 | 143 | List<Map<String, Object>> tccList = jdbcTemplate.queryForList(sql); |
| 144 | 144 | Map<String, Polygon> tccTempMap = new HashMap<>(); |
| 145 | 145 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/cache/GpsCacheData.java
| ... | ... | @@ -9,6 +9,8 @@ import org.slf4j.Logger; |
| 9 | 9 | import org.slf4j.LoggerFactory; |
| 10 | 10 | |
| 11 | 11 | import java.util.*; |
| 12 | +import java.util.concurrent.ConcurrentHashMap; | |
| 13 | +import java.util.concurrent.ConcurrentMap; | |
| 12 | 14 | |
| 13 | 15 | /** |
| 14 | 16 | * gps 数据缓存 |
| ... | ... | @@ -17,10 +19,10 @@ import java.util.*; |
| 17 | 19 | public class GpsCacheData { |
| 18 | 20 | |
| 19 | 21 | /** |
| 20 | - * 每辆车缓存最后300条gps | |
| 22 | + * 每辆车缓存最后200条gps | |
| 21 | 23 | */ |
| 22 | - private static final int CACHE_SIZE = 300; | |
| 23 | - private static Map<String, CircleQueue<GpsEntity>> gpsCacheMap = new HashMap<>(); | |
| 24 | + private static final int CACHE_SIZE = 200; | |
| 25 | + private static ConcurrentMap<String, CircleQueue<GpsEntity>> gpsCacheMap = new ConcurrentHashMap<>(); | |
| 24 | 26 | |
| 25 | 27 | /** |
| 26 | 28 | * 车辆执行班次的详细 进出站数据 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/entity/GpsEntity.java
| ... | ... | @@ -100,6 +100,9 @@ public class GpsEntity implements Cloneable{ |
| 100 | 100 | */ |
| 101 | 101 | private int source = -1; |
| 102 | 102 | |
| 103 | + private String remark; | |
| 104 | + private String planCode; | |
| 105 | + | |
| 103 | 106 | public Object clone() { |
| 104 | 107 | try { |
| 105 | 108 | return super.clone(); |
| ... | ... | @@ -360,4 +363,20 @@ public class GpsEntity implements Cloneable{ |
| 360 | 363 | public void setPremiseCode(String premiseCode) { |
| 361 | 364 | this.premiseCode = premiseCode; |
| 362 | 365 | } |
| 366 | + | |
| 367 | + public String getRemark() { | |
| 368 | + return remark; | |
| 369 | + } | |
| 370 | + | |
| 371 | + public void setRemark(String remark) { | |
| 372 | + this.remark = remark; | |
| 373 | + } | |
| 374 | + | |
| 375 | + public String getPlanCode() { | |
| 376 | + return planCode; | |
| 377 | + } | |
| 378 | + | |
| 379 | + public void setPlanCode(String planCode) { | |
| 380 | + this.planCode = planCode; | |
| 381 | + } | |
| 363 | 382 | } | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/handlers/AbnormalStateProcess.java
| ... | ... | @@ -3,8 +3,10 @@ package com.bsth.data.gpsdata_v2.handlers; |
| 3 | 3 | import com.bsth.data.gpsdata_v2.cache.GeoCacheData; |
| 4 | 4 | import com.bsth.data.gpsdata_v2.entity.CtLineString; |
| 5 | 5 | import com.bsth.data.gpsdata_v2.entity.GpsEntity; |
| 6 | +import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | |
| 6 | 7 | import com.bsth.data.gpsdata_v2.utils.GeoUtils; |
| 7 | 8 | import com.bsth.util.Geo.Point; |
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | 10 | import org.springframework.stereotype.Component; |
| 9 | 11 | |
| 10 | 12 | import java.util.List; |
| ... | ... | @@ -17,19 +19,18 @@ import java.util.List; |
| 17 | 19 | public class AbnormalStateProcess { |
| 18 | 20 | |
| 19 | 21 | /** |
| 20 | - * 默认限速 | |
| 21 | - */ | |
| 22 | - private static final double DEFAULT_SPEED_LIMIT = 60; | |
| 23 | - /** | |
| 24 | 22 | * 越界阈值 |
| 25 | 23 | */ |
| 26 | 24 | private static final double OUT_BOUNDS_THRESHOLD = 100; |
| 27 | 25 | |
| 26 | + @Autowired | |
| 27 | + OverspeedProcess overspeedProcess; | |
| 28 | + | |
| 28 | 29 | public void process(GpsEntity gps) { |
| 29 | 30 | if (isOffline(gps)) |
| 30 | 31 | return; |
| 31 | 32 | |
| 32 | - if (overspeed(gps)) | |
| 33 | + if (overspeedProcess.process(gps)) | |
| 33 | 34 | return; |
| 34 | 35 | |
| 35 | 36 | if (outOfBounds((gps))) |
| ... | ... | @@ -41,14 +42,14 @@ public class AbnormalStateProcess { |
| 41 | 42 | } |
| 42 | 43 | |
| 43 | 44 | |
| 44 | - /** | |
| 45 | +/* *//** | |
| 45 | 46 | * 是否超速 |
| 46 | 47 | * |
| 47 | 48 | * @param gps |
| 48 | 49 | * @return |
| 49 | - */ | |
| 50 | + | |
| 50 | 51 | private boolean overspeed(GpsEntity gps) { |
| 51 | - double maxSpeed = DEFAULT_SPEED_LIMIT; | |
| 52 | + *//*double maxSpeed = DEFAULT_SPEED_LIMIT; | |
| 52 | 53 | if (GeoCacheData.speedLimit(gps.getLineId()) != null) |
| 53 | 54 | maxSpeed = GeoCacheData.speedLimit(gps.getLineId()); |
| 54 | 55 | |
| ... | ... | @@ -56,8 +57,9 @@ public class AbnormalStateProcess { |
| 56 | 57 | gps.setAbnormalStatus("overspeed"); |
| 57 | 58 | return true; |
| 58 | 59 | } |
| 59 | - return false; | |
| 60 | - } | |
| 60 | + return false;*//* | |
| 61 | + return overspeedProcess.process(gps); | |
| 62 | + }*/ | |
| 61 | 63 | |
| 62 | 64 | |
| 63 | 65 | /** | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/handlers/InStationProcess.java
| ... | ... | @@ -159,7 +159,7 @@ public class InStationProcess { |
| 159 | 159 | logger.info("车辆:" + nbbm + " 班次:" + sch.getDfsj() + "到终点, 时间:" + sch.getZdsjActual()); |
| 160 | 160 | |
| 161 | 161 | //清除车辆误点调整监听 |
| 162 | - LateAdjustHandle.remove(nbbm); | |
| 162 | + LateAdjustHandle.remove(sch); | |
| 163 | 163 | |
| 164 | 164 | //将gps转换成下一个班次走向的站内信号(应对只有一个站内信号 即 发出时) |
| 165 | 165 | transformUpDown(gps, next); | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/handlers/OutStationProcess.java
| ... | ... | @@ -113,7 +113,7 @@ public class OutStationProcess { |
| 113 | 113 | dayOfSchedule.save(sch); |
| 114 | 114 | |
| 115 | 115 | //清理应发未发标记 |
| 116 | - LateAdjustHandle.remove(sch.getClZbh()); | |
| 116 | + LateAdjustHandle.remove(sch); | |
| 117 | 117 | |
| 118 | 118 | //发车的时候,同步一下状态 |
| 119 | 119 | if (!gps.isService() && !dayOfSchedule.emptyService(sch)) | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/handlers/overspeed/GpsOverspeed.java
0 → 100644
| 1 | +package com.bsth.data.gpsdata_v2.handlers.overspeed; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * gps 超速信息 | |
| 5 | + * Created by panzhao on 2018/1/9. | |
| 6 | + */ | |
| 7 | +public class GpsOverspeed { | |
| 8 | + | |
| 9 | + private String device; | |
| 10 | + | |
| 11 | + private String nbbm; | |
| 12 | + | |
| 13 | + private String lineCode; | |
| 14 | + | |
| 15 | + /** | |
| 16 | + * 开始超速时间 HH:mm | |
| 17 | + */ | |
| 18 | + private String sts; | |
| 19 | + | |
| 20 | + private long st; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * 结束超速时间 HH:mm | |
| 24 | + */ | |
| 25 | + private String ets; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 最新速度值 | |
| 29 | + */ | |
| 30 | + private float speed; | |
| 31 | + | |
| 32 | + /** | |
| 33 | + * 0:结束超速, 1:离线 | |
| 34 | + */ | |
| 35 | + private int eType; | |
| 36 | + | |
| 37 | + public String getDevice() { | |
| 38 | + return device; | |
| 39 | + } | |
| 40 | + | |
| 41 | + public void setDevice(String device) { | |
| 42 | + this.device = device; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public String getNbbm() { | |
| 46 | + return nbbm; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public void setNbbm(String nbbm) { | |
| 50 | + this.nbbm = nbbm; | |
| 51 | + } | |
| 52 | + | |
| 53 | + public String getLineCode() { | |
| 54 | + return lineCode; | |
| 55 | + } | |
| 56 | + | |
| 57 | + public void setLineCode(String lineCode) { | |
| 58 | + this.lineCode = lineCode; | |
| 59 | + } | |
| 60 | + | |
| 61 | + public String getSts() { | |
| 62 | + return sts; | |
| 63 | + } | |
| 64 | + | |
| 65 | + public void setSts(String sts) { | |
| 66 | + this.sts = sts; | |
| 67 | + } | |
| 68 | + | |
| 69 | + public long getSt() { | |
| 70 | + return st; | |
| 71 | + } | |
| 72 | + | |
| 73 | + public void setSt(long st) { | |
| 74 | + this.st = st; | |
| 75 | + } | |
| 76 | + | |
| 77 | + public String getEts() { | |
| 78 | + return ets; | |
| 79 | + } | |
| 80 | + | |
| 81 | + public void setEts(String ets) { | |
| 82 | + this.ets = ets; | |
| 83 | + } | |
| 84 | + | |
| 85 | + public float getSpeed() { | |
| 86 | + return speed; | |
| 87 | + } | |
| 88 | + | |
| 89 | + public void setSpeed(float speed) { | |
| 90 | + this.speed = speed; | |
| 91 | + } | |
| 92 | + | |
| 93 | + public int geteType() { | |
| 94 | + return eType; | |
| 95 | + } | |
| 96 | + | |
| 97 | + public void seteType(int eType) { | |
| 98 | + this.eType = eType; | |
| 99 | + } | |
| 100 | +} | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/handlers/overspeed/OverspeedProcess.java
0 → 100644
| 1 | +package com.bsth.data.gpsdata_v2.handlers.overspeed; | |
| 2 | + | |
| 3 | +import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | |
| 4 | +import com.bsth.data.gpsdata_v2.entity.GpsEntity; | |
| 5 | +import com.google.common.collect.ArrayListMultimap; | |
| 6 | +import org.joda.time.format.DateTimeFormat; | |
| 7 | +import org.joda.time.format.DateTimeFormatter; | |
| 8 | +import org.slf4j.Logger; | |
| 9 | +import org.slf4j.LoggerFactory; | |
| 10 | +import org.springframework.stereotype.Component; | |
| 11 | + | |
| 12 | +import java.util.*; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 超速处理 | |
| 16 | + * Created by panzhao on 2018/1/9. | |
| 17 | + */ | |
| 18 | +@Component | |
| 19 | +public class OverspeedProcess { | |
| 20 | + | |
| 21 | + | |
| 22 | + private static final double DEFAULT_SPEED_LIMIT = 60; | |
| 23 | + | |
| 24 | + private static final double INVALID_SPEED_LIMIT = 110; | |
| 25 | + | |
| 26 | + private static final int CONT_SPEED_SIZE = 6; | |
| 27 | + | |
| 28 | + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm"); | |
| 29 | + | |
| 30 | + private static GpsOverspeedComp comp = new GpsOverspeedComp(); | |
| 31 | + /** | |
| 32 | + * 按线路分组的超速信息 | |
| 33 | + */ | |
| 34 | + private static ArrayListMultimap<String, GpsOverspeed> multimap; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 设备号 --> 当前超速 | |
| 38 | + */ | |
| 39 | + private static Map<String, GpsOverspeed> realOverspeedMap; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 设备号 --> 连续超速次数 | |
| 43 | + */ | |
| 44 | + private static Map<String, Integer> contSpeedMap; | |
| 45 | + | |
| 46 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 47 | + | |
| 48 | + static{ | |
| 49 | + multimap = ArrayListMultimap.create(); | |
| 50 | + contSpeedMap = new HashMap(); | |
| 51 | + realOverspeedMap = new HashMap(); | |
| 52 | + } | |
| 53 | + | |
| 54 | + public static void clear(){ | |
| 55 | + multimap = null; | |
| 56 | + multimap = ArrayListMultimap.create(); | |
| 57 | + | |
| 58 | + contSpeedMap = null; | |
| 59 | + contSpeedMap = new HashMap(); | |
| 60 | + | |
| 61 | + realOverspeedMap = null; | |
| 62 | + realOverspeedMap = new HashMap(); | |
| 63 | + } | |
| 64 | + | |
| 65 | + public boolean process(GpsEntity gps){ | |
| 66 | + if(gps.getSpeed() >= INVALID_SPEED_LIMIT){ | |
| 67 | + return false;//无效的速度 | |
| 68 | + } | |
| 69 | + | |
| 70 | + Double maxSpeed = GeoCacheData.speedLimit(gps.getLineId()); | |
| 71 | + if(null == maxSpeed) | |
| 72 | + maxSpeed = DEFAULT_SPEED_LIMIT; | |
| 73 | + | |
| 74 | + if(gps.getSpeed() > maxSpeed){ | |
| 75 | + overspeed(gps, maxSpeed); | |
| 76 | + } | |
| 77 | + else if(realOverspeedMap.containsKey(gps.getDeviceId())){ | |
| 78 | + String device = gps.getDeviceId(); | |
| 79 | + //结束超速 | |
| 80 | + GpsOverspeed sp = realOverspeedMap.get(device); | |
| 81 | + sp.setEts(fmtHHmm.print(gps.getTimestamp())); | |
| 82 | + | |
| 83 | + realOverspeedMap.remove(device); | |
| 84 | + contSpeedMap.put(device, 0); | |
| 85 | + } | |
| 86 | + return false; | |
| 87 | + } | |
| 88 | + | |
| 89 | + private void overspeed(GpsEntity gps, Double maxSpeed) { | |
| 90 | + String device = gps.getDeviceId(); | |
| 91 | + Integer cont = contSpeedMap.get(device); | |
| 92 | + | |
| 93 | + if(null == cont) | |
| 94 | + cont = 1; | |
| 95 | + | |
| 96 | + cont++; | |
| 97 | + | |
| 98 | + if(gps.getSpeed() - maxSpeed > (maxSpeed * 0.1)) | |
| 99 | + cont++; | |
| 100 | + | |
| 101 | + if(cont >= CONT_SPEED_SIZE){ | |
| 102 | + if(realOverspeedMap.containsKey(device)){ | |
| 103 | + //正在超速,更新速度 | |
| 104 | + realOverspeedMap.get(device).setSpeed(gps.getSpeed()); | |
| 105 | + } | |
| 106 | + else{ | |
| 107 | + logger.info("开始超速..." + gps.getNbbm()); | |
| 108 | + GpsOverspeed sp = new GpsOverspeed(); | |
| 109 | + sp.setLineCode(gps.getLineId()); | |
| 110 | + sp.setDevice(device); | |
| 111 | + sp.setSpeed(gps.getSpeed()); | |
| 112 | + sp.setNbbm(gps.getNbbm()); | |
| 113 | + sp.setSts(fmtHHmm.print(gps.getTimestamp())); | |
| 114 | + sp.setSt(gps.getTimestamp()); | |
| 115 | + | |
| 116 | + realOverspeedMap.put(device, sp); | |
| 117 | + multimap.put(sp.getLineCode(), sp); | |
| 118 | + } | |
| 119 | + //标记gps超速 | |
| 120 | + gps.setAbnormalStatus("overspeed"); | |
| 121 | + } | |
| 122 | + | |
| 123 | + contSpeedMap.put(device, cont); | |
| 124 | + } | |
| 125 | + | |
| 126 | + /** | |
| 127 | + * 设备掉线 | |
| 128 | + * @param device | |
| 129 | + */ | |
| 130 | + public void offline(String device){ | |
| 131 | + if(realOverspeedMap.containsKey(device)){ | |
| 132 | + //结束超速 | |
| 133 | + GpsOverspeed sp = realOverspeedMap.get(device); | |
| 134 | + sp.setEts(fmtHHmm.print(System.currentTimeMillis())); | |
| 135 | + sp.seteType(1); | |
| 136 | + | |
| 137 | + realOverspeedMap.remove(device); | |
| 138 | + contSpeedMap.put(device, 0); | |
| 139 | + } | |
| 140 | + } | |
| 141 | + | |
| 142 | + | |
| 143 | + public List<GpsOverspeed> findByLines(List<String> lineArray){ | |
| 144 | + List<GpsOverspeed> rs = new ArrayList<>(); | |
| 145 | + | |
| 146 | + for(String code : lineArray){ | |
| 147 | + rs.addAll(multimap.get(code)); | |
| 148 | + } | |
| 149 | + | |
| 150 | + //按发送时间排序 | |
| 151 | + Collections.sort(rs, comp); | |
| 152 | + if(rs.size() > 50) | |
| 153 | + rs = rs.subList(0, 50); | |
| 154 | + | |
| 155 | + return rs; | |
| 156 | + } | |
| 157 | + | |
| 158 | + | |
| 159 | + public static class GpsOverspeedComp implements Comparator<GpsOverspeed>{ | |
| 160 | + | |
| 161 | + @Override | |
| 162 | + public int compare(GpsOverspeed o1, GpsOverspeed o2) { | |
| 163 | + return (int) (o2.getSt() - o1.getSt()); | |
| 164 | + } | |
| 165 | + } | |
| 166 | +} | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/load/GatewayHttpLoader.java
| ... | ... | @@ -51,8 +51,8 @@ public class GatewayHttpLoader implements ApplicationContextAware{ |
| 51 | 51 | httpClient = HttpClients.createDefault(); |
| 52 | 52 | get = new HttpGet(url); |
| 53 | 53 | requestConfig = RequestConfig.custom() |
| 54 | - .setConnectTimeout(1500).setConnectionRequestTimeout(1000) | |
| 55 | - .setSocketTimeout(1500).build(); | |
| 54 | + .setConnectTimeout(2500).setConnectionRequestTimeout(2000) | |
| 55 | + .setSocketTimeout(2500).build(); | |
| 56 | 56 | get.setConfig(requestConfig); |
| 57 | 57 | } |
| 58 | 58 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/load/SocketClientLoader.java
| ... | ... | @@ -44,8 +44,8 @@ public class SocketClientLoader { |
| 44 | 44 | httpClient = HttpClients.createDefault(); |
| 45 | 45 | get = new HttpGet(url); |
| 46 | 46 | requestConfig = RequestConfig.custom() |
| 47 | - .setConnectTimeout(1500).setConnectionRequestTimeout(1000) | |
| 48 | - .setSocketTimeout(1500).build(); | |
| 47 | + .setConnectTimeout(2500).setConnectionRequestTimeout(2000) | |
| 48 | + .setSocketTimeout(2500).build(); | |
| 49 | 49 | get.setConfig(requestConfig); |
| 50 | 50 | } |
| 51 | 51 | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/thread/OfflineMonitorThread.java
| ... | ... | @@ -2,6 +2,7 @@ package com.bsth.data.gpsdata_v2.thread; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.data.gpsdata_v2.GpsRealData; |
| 4 | 4 | import com.bsth.data.gpsdata_v2.entity.GpsEntity; |
| 5 | +import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | |
| 5 | 6 | import com.bsth.websocket.handler.SendUtils; |
| 6 | 7 | import org.slf4j.Logger; |
| 7 | 8 | import org.slf4j.LoggerFactory; |
| ... | ... | @@ -28,6 +29,9 @@ public class OfflineMonitorThread extends Thread{ |
| 28 | 29 | @Autowired |
| 29 | 30 | SendUtils sendUtils; |
| 30 | 31 | |
| 32 | + @Autowired | |
| 33 | + OverspeedProcess overspeedProcess; | |
| 34 | + | |
| 31 | 35 | //无任务时 离线阈值 |
| 32 | 36 | //private final static int OFFLINE_TIME = 1000 * 60 * 10; |
| 33 | 37 | |
| ... | ... | @@ -47,6 +51,8 @@ public class OfflineMonitorThread extends Thread{ |
| 47 | 51 | if (t - gps.getTimestamp() > LOSE_TIME){ |
| 48 | 52 | gps.offline(); |
| 49 | 53 | |
| 54 | + //结束超速 | |
| 55 | + overspeedProcess.offline(gps.getDeviceId()); | |
| 50 | 56 | //通知页面有设备掉线 |
| 51 | 57 | sendUtils.deviceOffline(gps); |
| 52 | 58 | } | ... | ... |
src/main/java/com/bsth/data/line_version/EnableRouteVersionHandler.java
0 → 100644
| 1 | +package com.bsth.data.line_version; | |
| 2 | + | |
| 3 | +import com.bsth.data.line_version.dto.EvSectionRoute; | |
| 4 | +import com.bsth.data.line_version.dto.EvStationRoute; | |
| 5 | +import org.slf4j.Logger; | |
| 6 | +import org.slf4j.LoggerFactory; | |
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | +import org.springframework.jdbc.core.BeanPropertyRowMapper; | |
| 9 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 10 | +import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource; | |
| 11 | +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; | |
| 12 | +import org.springframework.jdbc.datasource.DataSourceTransactionManager; | |
| 13 | +import org.springframework.stereotype.Component; | |
| 14 | +import org.springframework.transaction.TransactionDefinition; | |
| 15 | +import org.springframework.transaction.TransactionStatus; | |
| 16 | +import org.springframework.transaction.support.DefaultTransactionDefinition; | |
| 17 | + | |
| 18 | +import java.util.ArrayList; | |
| 19 | +import java.util.List; | |
| 20 | + | |
| 21 | +/** | |
| 22 | + * 启用线路路由版本 | |
| 23 | + * Created by panzhao on 2017/12/28. | |
| 24 | + */ | |
| 25 | +@Component | |
| 26 | +public class EnableRouteVersionHandler { | |
| 27 | + | |
| 28 | + @Autowired | |
| 29 | + JdbcTemplate jdbcTemplate; | |
| 30 | + | |
| 31 | + @Autowired | |
| 32 | + NamedParameterJdbcTemplate namedParameterJdbcTemplate; | |
| 33 | + | |
| 34 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 35 | + | |
| 36 | + public void enable(String lineCode, int version){ | |
| 37 | + //编程式事务 | |
| 38 | + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 39 | + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 40 | + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 41 | + TransactionStatus status = tran.getTransaction(def); | |
| 42 | + | |
| 43 | + | |
| 44 | + try{ | |
| 45 | + enableStation(lineCode, version); | |
| 46 | + enableRoad(lineCode, version); | |
| 47 | + | |
| 48 | + //将当前版本变为历史版本 | |
| 49 | + String sql = "update bsth_c_line_versions set status=0, end_date=SYSDATE(),update_date=SYSDATE() where line_code=" + lineCode + " and status=1"; | |
| 50 | + jdbcTemplate.update(sql); | |
| 51 | + //将待更新版本变为启用版本 | |
| 52 | + sql = "update bsth_c_line_versions set status=1,update_date=SYSDATE() where line_code=" + lineCode + " and versions="+version; | |
| 53 | + jdbcTemplate.update(sql); | |
| 54 | + | |
| 55 | + tran.commit(status); | |
| 56 | + }catch (Exception e){ | |
| 57 | + tran.rollback(status); | |
| 58 | + logger.error("", e); | |
| 59 | + } | |
| 60 | + } | |
| 61 | + | |
| 62 | + public void sync(String lineCode, int version){ | |
| 63 | + //编程式事务 | |
| 64 | + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 65 | + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 66 | + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 67 | + TransactionStatus status = tran.getTransaction(def); | |
| 68 | + | |
| 69 | + | |
| 70 | + try{ | |
| 71 | + enableStation(lineCode, version); | |
| 72 | + enableRoad(lineCode, version); | |
| 73 | + | |
| 74 | + tran.commit(status); | |
| 75 | + }catch (Exception e){ | |
| 76 | + tran.rollback(status); | |
| 77 | + logger.error("", e); | |
| 78 | + } | |
| 79 | + } | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * 启用新版本站点 | |
| 83 | + * @param lineCode | |
| 84 | + * @param version | |
| 85 | + */ | |
| 86 | + public void enableStation(String lineCode, int version){ | |
| 87 | + //删除当前站点路由表数据 | |
| 88 | + String sql = "delete from bsth_c_stationroute where line_code=" + lineCode; | |
| 89 | + jdbcTemplate.update(sql); | |
| 90 | + | |
| 91 | + //将新版本数据插入当前表 | |
| 92 | + sql = "select * from bsth_c_ls_stationroute where line_code=" + lineCode + " and versions=" + version; | |
| 93 | + List<EvStationRoute> list = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(EvStationRoute.class)); | |
| 94 | + | |
| 95 | + List<BeanPropertySqlParameterSource> sourceList = new ArrayList<>(); | |
| 96 | + for(EvStationRoute s : list){ | |
| 97 | + sourceList.add(new BeanPropertySqlParameterSource(s)); | |
| 98 | + } | |
| 99 | + | |
| 100 | + sql = "insert into bsth_c_stationroute(id,line,station,station_name,station_route_code,line_code,station_code,station_mark,out_station_nmber,directions,distances,to_time,first_time,end_time,descriptions,destroy,versions,create_date,update_date) " + | |
| 101 | + " values(:id,:line,:station,:stationName,:stationRouteCode,:lineCode,:stationCode,:stationMark,:outStationNmber,:directions,:distances,:toTime,:firstTime,:endTime,:descriptions,:destroy,:versions,SYSDATE(),SYSDATE())"; | |
| 102 | + BeanPropertySqlParameterSource[] beanSources = sourceList.toArray(new BeanPropertySqlParameterSource[sourceList.size()]); | |
| 103 | + namedParameterJdbcTemplate.batchUpdate(sql, beanSources); | |
| 104 | + } | |
| 105 | + | |
| 106 | + /** | |
| 107 | + * 启用新版本路段 | |
| 108 | + * @param lineCode | |
| 109 | + * @param version | |
| 110 | + */ | |
| 111 | + public void enableRoad(String lineCode, int version){ | |
| 112 | + //删除当前路段路由表数据 | |
| 113 | + String sql = "delete from bsth_c_sectionroute where line_code=" + lineCode; | |
| 114 | + jdbcTemplate.update(sql); | |
| 115 | + | |
| 116 | + //将新版本数据插入当前表 | |
| 117 | + sql = "select * from bsth_c_ls_sectionroute where line_code=" + lineCode + " and versions=" + version; | |
| 118 | + List<EvSectionRoute> list = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(EvSectionRoute.class)); | |
| 119 | + | |
| 120 | + List<BeanPropertySqlParameterSource> sourceList = new ArrayList<>(); | |
| 121 | + for(EvSectionRoute s : list){ | |
| 122 | + sourceList.add(new BeanPropertySqlParameterSource(s)); | |
| 123 | + } | |
| 124 | + | |
| 125 | + sql = "insert into bsth_c_sectionroute(id,line_code,section_code,sectionroute_code,directions,line,section,descriptions,create_by,create_date,update_by,update_date,versions,destroy,is_roade_speed) " + | |
| 126 | + " values(:id,:lineCode,:sectionCode,:sectionrouteCode,:directions,:line,:section,:descriptions,:createBy,SYSDATE(),:updateBy,SYSDATE(),:versions,:destroy,:isRoadeSpeed)"; | |
| 127 | + BeanPropertySqlParameterSource[] beanSources = sourceList.toArray(new BeanPropertySqlParameterSource[sourceList.size()]); | |
| 128 | + namedParameterJdbcTemplate.batchUpdate(sql, beanSources); | |
| 129 | + } | |
| 130 | +} | ... | ... |
src/main/java/com/bsth/data/line_version/dto/EvSectionRoute.java
0 → 100644
| 1 | +package com.bsth.data.line_version.dto; | |
| 2 | + | |
| 3 | +import java.util.Date; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * Created by panzhao on 2017/12/28. | |
| 7 | + */ | |
| 8 | +public class EvSectionRoute { | |
| 9 | + | |
| 10 | + | |
| 11 | + private Integer id; | |
| 12 | + | |
| 13 | + // 路段路由序号 | |
| 14 | + private Integer sectionrouteCode; | |
| 15 | + | |
| 16 | + // 线路编号 | |
| 17 | + private String lineCode; | |
| 18 | + | |
| 19 | + // 路段编号 | |
| 20 | + private String sectionCode; | |
| 21 | + | |
| 22 | + // 路段路由方向 | |
| 23 | + private Integer directions; | |
| 24 | + | |
| 25 | + // 版本号 | |
| 26 | + private Integer versions; | |
| 27 | + | |
| 28 | + // 是否撤销 | |
| 29 | + private Integer destroy; | |
| 30 | + | |
| 31 | + /** 是否有路段限速数据 <0:分段;1:未分段>*/ | |
| 32 | + private Integer isRoadeSpeed; | |
| 33 | + | |
| 34 | + // 描述 | |
| 35 | + private String descriptions; | |
| 36 | + | |
| 37 | + // 创建人 | |
| 38 | + private Integer createBy; | |
| 39 | + | |
| 40 | + // 修改人 | |
| 41 | + private Integer updateBy; | |
| 42 | + | |
| 43 | + // 创建日期 | |
| 44 | + private Date createDate; | |
| 45 | + | |
| 46 | + // 修改日期 | |
| 47 | + private Date updateDate; | |
| 48 | + | |
| 49 | + // 路段信息 | |
| 50 | + private Integer section; | |
| 51 | + | |
| 52 | + // 线路信息 | |
| 53 | + private Integer line; | |
| 54 | + | |
| 55 | + public Integer getId() { | |
| 56 | + return id; | |
| 57 | + } | |
| 58 | + | |
| 59 | + public void setId(Integer id) { | |
| 60 | + this.id = id; | |
| 61 | + } | |
| 62 | + | |
| 63 | + public Integer getSectionrouteCode() { | |
| 64 | + return sectionrouteCode; | |
| 65 | + } | |
| 66 | + | |
| 67 | + public void setSectionrouteCode(Integer sectionrouteCode) { | |
| 68 | + this.sectionrouteCode = sectionrouteCode; | |
| 69 | + } | |
| 70 | + | |
| 71 | + public String getLineCode() { | |
| 72 | + return lineCode; | |
| 73 | + } | |
| 74 | + | |
| 75 | + public void setLineCode(String lineCode) { | |
| 76 | + this.lineCode = lineCode; | |
| 77 | + } | |
| 78 | + | |
| 79 | + public String getSectionCode() { | |
| 80 | + return sectionCode; | |
| 81 | + } | |
| 82 | + | |
| 83 | + public void setSectionCode(String sectionCode) { | |
| 84 | + this.sectionCode = sectionCode; | |
| 85 | + } | |
| 86 | + | |
| 87 | + public Integer getDirections() { | |
| 88 | + return directions; | |
| 89 | + } | |
| 90 | + | |
| 91 | + public void setDirections(Integer directions) { | |
| 92 | + this.directions = directions; | |
| 93 | + } | |
| 94 | + | |
| 95 | + public Integer getVersions() { | |
| 96 | + return versions; | |
| 97 | + } | |
| 98 | + | |
| 99 | + public void setVersions(Integer versions) { | |
| 100 | + this.versions = versions; | |
| 101 | + } | |
| 102 | + | |
| 103 | + public Integer getDestroy() { | |
| 104 | + return destroy; | |
| 105 | + } | |
| 106 | + | |
| 107 | + public void setDestroy(Integer destroy) { | |
| 108 | + this.destroy = destroy; | |
| 109 | + } | |
| 110 | + | |
| 111 | + public Integer getIsRoadeSpeed() { | |
| 112 | + return isRoadeSpeed; | |
| 113 | + } | |
| 114 | + | |
| 115 | + public void setIsRoadeSpeed(Integer isRoadeSpeed) { | |
| 116 | + this.isRoadeSpeed = isRoadeSpeed; | |
| 117 | + } | |
| 118 | + | |
| 119 | + public String getDescriptions() { | |
| 120 | + return descriptions; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public void setDescriptions(String descriptions) { | |
| 124 | + this.descriptions = descriptions; | |
| 125 | + } | |
| 126 | + | |
| 127 | + public Integer getCreateBy() { | |
| 128 | + return createBy; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public void setCreateBy(Integer createBy) { | |
| 132 | + this.createBy = createBy; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public Integer getUpdateBy() { | |
| 136 | + return updateBy; | |
| 137 | + } | |
| 138 | + | |
| 139 | + public void setUpdateBy(Integer updateBy) { | |
| 140 | + this.updateBy = updateBy; | |
| 141 | + } | |
| 142 | + | |
| 143 | + public Date getCreateDate() { | |
| 144 | + return createDate; | |
| 145 | + } | |
| 146 | + | |
| 147 | + public void setCreateDate(Date createDate) { | |
| 148 | + this.createDate = createDate; | |
| 149 | + } | |
| 150 | + | |
| 151 | + public Date getUpdateDate() { | |
| 152 | + return updateDate; | |
| 153 | + } | |
| 154 | + | |
| 155 | + public void setUpdateDate(Date updateDate) { | |
| 156 | + this.updateDate = updateDate; | |
| 157 | + } | |
| 158 | + | |
| 159 | + public Integer getSection() { | |
| 160 | + return section; | |
| 161 | + } | |
| 162 | + | |
| 163 | + public void setSection(Integer section) { | |
| 164 | + this.section = section; | |
| 165 | + } | |
| 166 | + | |
| 167 | + public Integer getLine() { | |
| 168 | + return line; | |
| 169 | + } | |
| 170 | + | |
| 171 | + public void setLine(Integer line) { | |
| 172 | + this.line = line; | |
| 173 | + } | |
| 174 | +} | ... | ... |
src/main/java/com/bsth/data/line_version/dto/EvStationRoute.java
0 → 100644
| 1 | +package com.bsth.data.line_version.dto; | |
| 2 | + | |
| 3 | +import java.util.Date; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * Created by panzhao on 2017/12/28. | |
| 7 | + */ | |
| 8 | +public class EvStationRoute { | |
| 9 | + private Integer id; | |
| 10 | + | |
| 11 | + // 站点路由序号 | |
| 12 | + private Integer stationRouteCode; | |
| 13 | + | |
| 14 | + // 站点编码 | |
| 15 | + private String stationCode; | |
| 16 | + | |
| 17 | + // 站点名称 | |
| 18 | + private String stationName; | |
| 19 | + | |
| 20 | + // 线路编码 | |
| 21 | + private String lineCode; | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 站点类型 | |
| 25 | + * | |
| 26 | + * ------ B:起点站 | |
| 27 | + * | |
| 28 | + * ------ Z:中途站 | |
| 29 | + * | |
| 30 | + * ------ E:终点站 | |
| 31 | + * | |
| 32 | + * ------ T:停车场 | |
| 33 | + * | |
| 34 | + */ | |
| 35 | + private String stationMark; | |
| 36 | + | |
| 37 | + // 站点路由出站序号 | |
| 38 | + private Integer outStationNmber; | |
| 39 | + | |
| 40 | + // 站点路由到站距离 | |
| 41 | + private Double distances; | |
| 42 | + | |
| 43 | + // 站点路由到站时间 | |
| 44 | + private Double toTime; | |
| 45 | + | |
| 46 | + // 首班时间 | |
| 47 | + private String firstTime; | |
| 48 | + | |
| 49 | + // 末班时间 | |
| 50 | + private String endTime; | |
| 51 | + | |
| 52 | + // 站点路由方向 | |
| 53 | + private Integer directions; | |
| 54 | + | |
| 55 | + // 版本号 | |
| 56 | + private Integer versions; | |
| 57 | + | |
| 58 | + // 是否撤销 | |
| 59 | + private Integer destroy; | |
| 60 | + | |
| 61 | + // 描述 | |
| 62 | + private String descriptions; | |
| 63 | + | |
| 64 | + // 创建人 | |
| 65 | + private Integer createBy; | |
| 66 | + | |
| 67 | + // 修改人 | |
| 68 | + private Integer updateBy; | |
| 69 | + | |
| 70 | + // 创建日期 | |
| 71 | + private Date createDate; | |
| 72 | + | |
| 73 | + // 修改日期 | |
| 74 | + private Date updateDate; | |
| 75 | + | |
| 76 | + // 站点信息 | |
| 77 | + private Integer station; | |
| 78 | + | |
| 79 | + // 线路信息 | |
| 80 | + private Integer line; | |
| 81 | + | |
| 82 | + public Integer getId() { | |
| 83 | + return id; | |
| 84 | + } | |
| 85 | + | |
| 86 | + public void setId(Integer id) { | |
| 87 | + this.id = id; | |
| 88 | + } | |
| 89 | + | |
| 90 | + public Integer getStationRouteCode() { | |
| 91 | + return stationRouteCode; | |
| 92 | + } | |
| 93 | + | |
| 94 | + public void setStationRouteCode(Integer stationRouteCode) { | |
| 95 | + this.stationRouteCode = stationRouteCode; | |
| 96 | + } | |
| 97 | + | |
| 98 | + public String getStationCode() { | |
| 99 | + return stationCode; | |
| 100 | + } | |
| 101 | + | |
| 102 | + public void setStationCode(String stationCode) { | |
| 103 | + this.stationCode = stationCode; | |
| 104 | + } | |
| 105 | + | |
| 106 | + public String getStationName() { | |
| 107 | + return stationName; | |
| 108 | + } | |
| 109 | + | |
| 110 | + public void setStationName(String stationName) { | |
| 111 | + this.stationName = stationName; | |
| 112 | + } | |
| 113 | + | |
| 114 | + public String getLineCode() { | |
| 115 | + return lineCode; | |
| 116 | + } | |
| 117 | + | |
| 118 | + public void setLineCode(String lineCode) { | |
| 119 | + this.lineCode = lineCode; | |
| 120 | + } | |
| 121 | + | |
| 122 | + public String getStationMark() { | |
| 123 | + return stationMark; | |
| 124 | + } | |
| 125 | + | |
| 126 | + public void setStationMark(String stationMark) { | |
| 127 | + this.stationMark = stationMark; | |
| 128 | + } | |
| 129 | + | |
| 130 | + public Integer getOutStationNmber() { | |
| 131 | + return outStationNmber; | |
| 132 | + } | |
| 133 | + | |
| 134 | + public void setOutStationNmber(Integer outStationNmber) { | |
| 135 | + this.outStationNmber = outStationNmber; | |
| 136 | + } | |
| 137 | + | |
| 138 | + public Double getDistances() { | |
| 139 | + return distances; | |
| 140 | + } | |
| 141 | + | |
| 142 | + public void setDistances(Double distances) { | |
| 143 | + this.distances = distances; | |
| 144 | + } | |
| 145 | + | |
| 146 | + public Double getToTime() { | |
| 147 | + return toTime; | |
| 148 | + } | |
| 149 | + | |
| 150 | + public void setToTime(Double toTime) { | |
| 151 | + this.toTime = toTime; | |
| 152 | + } | |
| 153 | + | |
| 154 | + public String getFirstTime() { | |
| 155 | + return firstTime; | |
| 156 | + } | |
| 157 | + | |
| 158 | + public void setFirstTime(String firstTime) { | |
| 159 | + this.firstTime = firstTime; | |
| 160 | + } | |
| 161 | + | |
| 162 | + public String getEndTime() { | |
| 163 | + return endTime; | |
| 164 | + } | |
| 165 | + | |
| 166 | + public void setEndTime(String endTime) { | |
| 167 | + this.endTime = endTime; | |
| 168 | + } | |
| 169 | + | |
| 170 | + public Integer getDirections() { | |
| 171 | + return directions; | |
| 172 | + } | |
| 173 | + | |
| 174 | + public void setDirections(Integer directions) { | |
| 175 | + this.directions = directions; | |
| 176 | + } | |
| 177 | + | |
| 178 | + public Integer getVersions() { | |
| 179 | + return versions; | |
| 180 | + } | |
| 181 | + | |
| 182 | + public void setVersions(Integer versions) { | |
| 183 | + this.versions = versions; | |
| 184 | + } | |
| 185 | + | |
| 186 | + public Integer getDestroy() { | |
| 187 | + return destroy; | |
| 188 | + } | |
| 189 | + | |
| 190 | + public void setDestroy(Integer destroy) { | |
| 191 | + this.destroy = destroy; | |
| 192 | + } | |
| 193 | + | |
| 194 | + public String getDescriptions() { | |
| 195 | + return descriptions; | |
| 196 | + } | |
| 197 | + | |
| 198 | + public void setDescriptions(String descriptions) { | |
| 199 | + this.descriptions = descriptions; | |
| 200 | + } | |
| 201 | + | |
| 202 | + public Integer getCreateBy() { | |
| 203 | + return createBy; | |
| 204 | + } | |
| 205 | + | |
| 206 | + public void setCreateBy(Integer createBy) { | |
| 207 | + this.createBy = createBy; | |
| 208 | + } | |
| 209 | + | |
| 210 | + public Integer getUpdateBy() { | |
| 211 | + return updateBy; | |
| 212 | + } | |
| 213 | + | |
| 214 | + public void setUpdateBy(Integer updateBy) { | |
| 215 | + this.updateBy = updateBy; | |
| 216 | + } | |
| 217 | + | |
| 218 | + public Date getCreateDate() { | |
| 219 | + return createDate; | |
| 220 | + } | |
| 221 | + | |
| 222 | + public void setCreateDate(Date createDate) { | |
| 223 | + this.createDate = createDate; | |
| 224 | + } | |
| 225 | + | |
| 226 | + public Date getUpdateDate() { | |
| 227 | + return updateDate; | |
| 228 | + } | |
| 229 | + | |
| 230 | + public void setUpdateDate(Date updateDate) { | |
| 231 | + this.updateDate = updateDate; | |
| 232 | + } | |
| 233 | + | |
| 234 | + public Integer getStation() { | |
| 235 | + return station; | |
| 236 | + } | |
| 237 | + | |
| 238 | + public void setStation(Integer station) { | |
| 239 | + this.station = station; | |
| 240 | + } | |
| 241 | + | |
| 242 | + public Integer getLine() { | |
| 243 | + return line; | |
| 244 | + } | |
| 245 | + | |
| 246 | + public void setLine(Integer line) { | |
| 247 | + this.line = line; | |
| 248 | + } | |
| 249 | +} | ... | ... |
src/main/java/com/bsth/data/line_version/thread/FixedEnableVerionsThread.java
0 → 100644
| 1 | +package com.bsth.data.line_version.thread; | |
| 2 | + | |
| 3 | +import com.bsth.data.line_version.EnableRouteVersionHandler; | |
| 4 | +import org.slf4j.Logger; | |
| 5 | +import org.slf4j.LoggerFactory; | |
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 8 | +import org.springframework.stereotype.Component; | |
| 9 | + | |
| 10 | +import java.util.List; | |
| 11 | +import java.util.Map; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * Created by panzhao on 2017/12/28. | |
| 15 | + */ | |
| 16 | +@Component | |
| 17 | +public class FixedEnableVerionsThread extends Thread { | |
| 18 | + | |
| 19 | + @Autowired | |
| 20 | + JdbcTemplate jdbcTemplate; | |
| 21 | + | |
| 22 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 23 | + | |
| 24 | + @Autowired | |
| 25 | + EnableRouteVersionHandler enableRouteVersionHandler; | |
| 26 | + | |
| 27 | + @Override | |
| 28 | + public void run() { | |
| 29 | + try { | |
| 30 | + | |
| 31 | + String sql = "select * from bsth_c_line_versions where status=2 and start_date<=SYSDATE()"; | |
| 32 | + | |
| 33 | + List<Map<String, Object>> list = jdbcTemplate.queryForList(sql); | |
| 34 | + if (list.size() > 0) { | |
| 35 | + String lineCode; | |
| 36 | + int version; | |
| 37 | + | |
| 38 | + for (Map<String, Object> map : list) { | |
| 39 | + lineCode = map.get("line_code").toString(); | |
| 40 | + version = Integer.parseInt(map.get("versions").toString()); | |
| 41 | + | |
| 42 | + enableRouteVersionHandler.enable(lineCode, version); | |
| 43 | + } | |
| 44 | + } | |
| 45 | + | |
| 46 | + | |
| 47 | + //自动同步当前启用版本 | |
| 48 | + long t = System.currentTimeMillis(); | |
| 49 | + List<String> syncs = jdbcTemplate.queryForList("SELECT CONCAT(line_code,'_',versions) FROM bsth_c_line_versions WHERE STATUS = 1 AND CONCAT(line_code, '_', versions) IN (SELECT CONCAT(line_code, '_', version) FROM logger_route_synchro where t < " + t + ")", String.class); | |
| 50 | + | |
| 51 | + String[] ks; | |
| 52 | + for (String keys : syncs) { | |
| 53 | + ks = keys.split("_"); | |
| 54 | + | |
| 55 | + enableRouteVersionHandler.sync(ks[0], Integer.parseInt(ks[1])); | |
| 56 | + | |
| 57 | + logger.info("同步线路 " + ks[0] + " 版本:" + ks[1]); | |
| 58 | + } | |
| 59 | + | |
| 60 | + jdbcTemplate.update("delete from logger_route_synchro where t < " + t); | |
| 61 | + } catch (Exception e) { | |
| 62 | + logger.error("", e); | |
| 63 | + } | |
| 64 | + } | |
| 65 | +} | ... | ... |
src/main/java/com/bsth/data/pilot80/PilotReport.java
| ... | ... | @@ -20,9 +20,7 @@ import org.slf4j.LoggerFactory; |
| 20 | 20 | import org.springframework.beans.factory.annotation.Autowired; |
| 21 | 21 | import org.springframework.stereotype.Component; |
| 22 | 22 | |
| 23 | -import java.util.ArrayList; | |
| 24 | -import java.util.Collection; | |
| 25 | -import java.util.List; | |
| 23 | +import java.util.*; | |
| 26 | 24 | import java.util.concurrent.ConcurrentHashMap; |
| 27 | 25 | |
| 28 | 26 | /** |
| ... | ... | @@ -55,10 +53,16 @@ public class PilotReport { |
| 55 | 53 | |
| 56 | 54 | private static ConcurrentHashMap<Integer, D80> d80Maps; |
| 57 | 55 | |
| 56 | + /** | |
| 57 | + * 设备 ——> 最后一条请求出场记录 | |
| 58 | + */ | |
| 59 | + public static ConcurrentHashMap<String, D80> qqccMap; | |
| 60 | + | |
| 58 | 61 | Logger logger = LoggerFactory.getLogger(PilotReport.class); |
| 59 | 62 | |
| 60 | 63 | static { |
| 61 | 64 | d80Maps = new ConcurrentHashMap<>(); |
| 65 | + qqccMap = new ConcurrentHashMap<>(); | |
| 62 | 66 | } |
| 63 | 67 | |
| 64 | 68 | public void report(D80 d80) { |
| ... | ... | @@ -81,6 +85,7 @@ public class PilotReport { |
| 81 | 85 | switch (d80.getData().getRequestCode()) { |
| 82 | 86 | //出场请求 |
| 83 | 87 | case 0xA3: |
| 88 | + qqccMap.put(d80.getDeviceId(), d80); | |
| 84 | 89 | ScheduleRealInfo outSch = dayOfSchedule.searchNearByBcType(nbbm, "out"); |
| 85 | 90 | //如果有对应出场班次 |
| 86 | 91 | if (outSch != null && StringUtils.isEmpty(outSch.getFcsjActual())) { |
| ... | ... | @@ -241,6 +246,7 @@ public class PilotReport { |
| 241 | 246 | List<D80> rems = findByLine(lineCode); |
| 242 | 247 | for (D80 d80 : rems) { |
| 243 | 248 | d80Maps.remove(d80.getId()); |
| 249 | + qqccMap.remove(d80.getDeviceId()); | |
| 244 | 250 | } |
| 245 | 251 | |
| 246 | 252 | rems.clear(); | ... | ... |
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java
| ... | ... | @@ -21,7 +21,7 @@ import java.util.List; |
| 21 | 21 | @Component |
| 22 | 22 | public class SafeDrivDataLoadThread extends Thread{ |
| 23 | 23 | |
| 24 | - private final static String url = "http://118.178.187.115/bsth-safedriving/Crlcxb/realtimeInterface.do"; | |
| 24 | + private final static String url = "http://180.166.5.82:9005/bsth-safedriving/Crlcxb/realtimeInterface.do"; | |
| 25 | 25 | |
| 26 | 26 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 27 | 27 | ... | ... |
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| ... | ... | @@ -15,6 +15,7 @@ import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; |
| 15 | 15 | import com.bsth.service.schedule.SchedulePlanInfoService; |
| 16 | 16 | import com.bsth.websocket.handler.SendUtils; |
| 17 | 17 | import com.google.common.collect.ArrayListMultimap; |
| 18 | +import com.google.common.collect.HashMultimap; | |
| 18 | 19 | import org.apache.commons.lang3.StringUtils; |
| 19 | 20 | import org.joda.time.format.DateTimeFormat; |
| 20 | 21 | import org.joda.time.format.DateTimeFormatter; |
| ... | ... | @@ -55,6 +56,9 @@ public class DayOfSchedule { |
| 55 | 56 | // 按车辆分组的班次数据 |
| 56 | 57 | private static ArrayListMultimap<String, ScheduleRealInfo> nbbmScheduleMap; |
| 57 | 58 | |
| 59 | + //按线路分组计划用车 | |
| 60 | + private static HashMultimap<String, String> lineNbbmsMap; | |
| 61 | + | |
| 58 | 62 | //按路牌分组的班次数据 线路编码_路牌名称 ——> 班次list |
| 59 | 63 | private static ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap; |
| 60 | 64 | |
| ... | ... | @@ -199,6 +203,8 @@ public class DayOfSchedule { |
| 199 | 203 | reCalcExecPlan(nbbm); |
| 200 | 204 | } |
| 201 | 205 | |
| 206 | + //分组计划用车 | |
| 207 | + reCalcLineNbbms(); | |
| 202 | 208 | // 页面 翻班通知 |
| 203 | 209 | //sendUtils.shiftSchedule(lineCode); |
| 204 | 210 | } catch (Exception e) { |
| ... | ... | @@ -543,15 +549,15 @@ public class DayOfSchedule { |
| 543 | 549 | * @Description: TODO(线路下运营的车辆) |
| 544 | 550 | */ |
| 545 | 551 | public Set<String> findCarByLineCode(String lineCode) { |
| 546 | - Set<String> rs = new HashSet<>(); | |
| 552 | + /*Set<String> rs = new HashSet<>(); | |
| 547 | 553 | |
| 548 | 554 | Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values(); |
| 549 | 555 | for (ScheduleRealInfo sch : schs) { |
| 550 | 556 | if (sch.getXlBm().equals(lineCode)) |
| 551 | 557 | rs.add(sch.getClZbh()); |
| 552 | 558 | } |
| 553 | - | |
| 554 | - return rs; | |
| 559 | +*/ | |
| 560 | + return lineNbbmsMap.get(lineCode); | |
| 555 | 561 | } |
| 556 | 562 | |
| 557 | 563 | public List<ScheduleRealInfo> findByNbbm(String nbbm) { |
| ... | ... | @@ -908,6 +914,8 @@ public class DayOfSchedule { |
| 908 | 914 | //重新计算车辆当前执行班次 |
| 909 | 915 | reCalcExecPlan(newClZbh); |
| 910 | 916 | reCalcExecPlan(sch.getClZbh()); |
| 917 | + //重新分组计划用车 | |
| 918 | + reCalcLineNbbms(); | |
| 911 | 919 | return ups; |
| 912 | 920 | } |
| 913 | 921 | |
| ... | ... | @@ -970,7 +978,6 @@ public class DayOfSchedule { |
| 970 | 978 | |
| 971 | 979 | //删除班次数据 |
| 972 | 980 | removeRealSch(lineCode, rq); |
| 973 | - //删除相关班次修正记录 | |
| 974 | 981 | |
| 975 | 982 | } |
| 976 | 983 | rs.put("status", ResponseCode.SUCCESS); |
| ... | ... | @@ -1083,6 +1090,20 @@ public class DayOfSchedule { |
| 1083 | 1090 | return id2SchedulMap.size(); |
| 1084 | 1091 | } |
| 1085 | 1092 | |
| 1093 | + /** | |
| 1094 | + * 重新计算线路计划用车 | |
| 1095 | + */ | |
| 1096 | + public void reCalcLineNbbms(){ | |
| 1097 | + HashMultimap<String, String> multimap = HashMultimap.create(); | |
| 1098 | + | |
| 1099 | + Collection<ScheduleRealInfo> schs = nbbmScheduleMap.values(); | |
| 1100 | + for (ScheduleRealInfo sch : schs) { | |
| 1101 | + multimap.put(sch.getXlBm(), sch.getClZbh()); | |
| 1102 | + } | |
| 1103 | + | |
| 1104 | + lineNbbmsMap = multimap; | |
| 1105 | + } | |
| 1106 | + | |
| 1086 | 1107 | public String sizeString(){ |
| 1087 | 1108 | return id2SchedulMap.size() + "/" + nbbmScheduleMap.size(); |
| 1088 | 1109 | } | ... | ... |
src/main/java/com/bsth/data/schedule/ScheduleComparator.java
| 1 | 1 | package com.bsth.data.schedule; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 4 | +import org.slf4j.Logger; | |
| 5 | +import org.slf4j.LoggerFactory; | |
| 4 | 6 | |
| 5 | 7 | import java.util.Comparator; |
| 6 | 8 | import java.util.HashMap; |
| ... | ... | @@ -23,6 +25,7 @@ public class ScheduleComparator { |
| 23 | 25 | } |
| 24 | 26 | }*/ |
| 25 | 27 | |
| 28 | + | |
| 26 | 29 | static Map<String, Integer> bcTypeOrderMap = new HashMap<>(); |
| 27 | 30 | |
| 28 | 31 | static{ |
| ... | ... | @@ -50,10 +53,44 @@ public class ScheduleComparator { |
| 50 | 53 | |
| 51 | 54 | public static class DFSJ implements Comparator<ScheduleRealInfo>{ |
| 52 | 55 | |
| 56 | + static Logger logger = LoggerFactory.getLogger(DFSJ.class); | |
| 57 | + | |
| 53 | 58 | @Override |
| 54 | 59 | public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) { |
| 55 | - int diff = (int) (s1.getDfsjT() - s2.getDfsjT()); | |
| 56 | - return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType()); | |
| 60 | + try{ | |
| 61 | + | |
| 62 | + if(!s1.getXlBm().equals(s2.getXlBm()) || !s1.getLpName().equals(s2.getLpName())){ | |
| 63 | + int diff = (int) (s1.getDfsjT() - s2.getDfsjT()); | |
| 64 | + return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType()); | |
| 65 | + } | |
| 66 | + else{ | |
| 67 | + /** | |
| 68 | + * 按时刻表发车顺序号 | |
| 69 | + */ | |
| 70 | + Integer fc1 = s1.getFcno(); | |
| 71 | + Integer fc2 = s2.getFcno(); | |
| 72 | + if(null != fc1 && null != fc2){ | |
| 73 | + return fc1.intValue()==fc2.intValue()?0:fc1.intValue()-fc2.intValue(); | |
| 74 | + } | |
| 75 | + else{ | |
| 76 | + int diff = (int) (s1.getDfsjT() - s2.getDfsjT()); | |
| 77 | + return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType()); | |
| 78 | + } | |
| 79 | + } | |
| 80 | + }catch (Exception e){ | |
| 81 | + logger.error("排序异常", e); | |
| 82 | + return s1.getDfsjT() - s2.getDfsjT() > 0?1:-1; | |
| 83 | + } | |
| 57 | 84 | } |
| 58 | 85 | } |
| 86 | + | |
| 87 | + public static class DFSJ2 implements Comparator<ScheduleRealInfo>{ | |
| 88 | + | |
| 89 | + | |
| 90 | + @Override | |
| 91 | + public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) { | |
| 92 | + int diff = (int) (s1.getDfsjT() - s2.getDfsjT()); | |
| 93 | + return diff!=0?diff:typeOrder(s1.getBcType()) - typeOrder(s2.getBcType()); | |
| 94 | + } | |
| 95 | + } | |
| 59 | 96 | } | ... | ... |
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
| ... | ... | @@ -117,7 +117,7 @@ public class LateAdjustHandle implements ApplicationContextAware{ |
| 117 | 117 | } |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | - public static void remove(String nbbm){ | |
| 120 | +/* public static void remove(String nbbm){ | |
| 121 | 121 | if(lateSchMap.containsKey(nbbm)){ |
| 122 | 122 | ScheduleRealInfo sch = lateSchMap.get(nbbm); |
| 123 | 123 | sch.setLate2(false); |
| ... | ... | @@ -127,7 +127,7 @@ public class LateAdjustHandle implements ApplicationContextAware{ |
| 127 | 127 | lateSchMap.remove(nbbm); |
| 128 | 128 | logger.info("移除误点调整 nbbm -" + nbbm); |
| 129 | 129 | } |
| 130 | - } | |
| 130 | + }*/ | |
| 131 | 131 | |
| 132 | 132 | /** |
| 133 | 133 | * 车辆到站 | ... | ... |
src/main/java/com/bsth/data/schedule/late_adjust/ScheduleLateThread.java
| ... | ... | @@ -35,7 +35,7 @@ public class ScheduleLateThread extends Thread{ |
| 35 | 35 | |
| 36 | 36 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 37 | 37 | |
| 38 | - private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.DFSJ(); | |
| 38 | + private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.DFSJ2(); | |
| 39 | 39 | |
| 40 | 40 | @Override |
| 41 | 41 | public void run() { | ... | ... |
src/main/java/com/bsth/data/schedule/thread/CalcOilThread.java
| 1 | 1 | package com.bsth.data.schedule.thread; |
| 2 | 2 | |
| 3 | +import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | |
| 3 | 4 | import com.bsth.service.oil.DlbService; |
| 4 | 5 | import com.bsth.data.safe_driv.SafeDrivCenter; |
| 5 | 6 | import com.bsth.service.oil.YlbService; |
| ... | ... | @@ -38,6 +39,8 @@ public class CalcOilThread extends Thread{ |
| 38 | 39 | logger.info("计算班次准点率结束!"); |
| 39 | 40 | //清除安全驾驶数据 先临时蹭这个线程 |
| 40 | 41 | SafeDrivCenter.clear(); |
| 42 | + //清除超速缓存数据 | |
| 43 | + OverspeedProcess.clear(); | |
| 41 | 44 | } catch(Exception e){ |
| 42 | 45 | logger.error("计算路单里程加注量失败",e); |
| 43 | 46 | } | ... | ... |
src/main/java/com/bsth/data/schedule/thread/SchedulePstThread.java
| ... | ... | @@ -152,7 +152,7 @@ public class SchedulePstThread extends Thread { |
| 152 | 152 | ps.setBoolean(40, sch.isOnline()); |
| 153 | 153 | ps.setString(41, sch.getAdjustExps()); |
| 154 | 154 | ps.setBoolean(42, sch.isReissue()); |
| 155 | - ps.setDouble(43, sch.getJhlcOrig()); | |
| 155 | + ps.setDouble(43, sch.getJhlcOrig()==null?0:sch.getJhlcOrig()); | |
| 156 | 156 | ps.setInt(44, sch.getSiginCompate()); |
| 157 | 157 | ps.setInt(45, sch.getDriftStatus()); |
| 158 | 158 | ps.setBoolean(46, sch.isCcService()); | ... | ... |
src/main/java/com/bsth/data/schedule/thread/ScheduleRefreshThread.java
| ... | ... | @@ -74,14 +74,6 @@ public class ScheduleRefreshThread extends Thread{ |
| 74 | 74 | //重载排班数据 |
| 75 | 75 | dayOfSchedule.reloadSch(lineCode, currSchDate, false); |
| 76 | 76 | logger.info(lineCode + "翻班完成, " + currSchDate + " -班次数量:" + dayOfSchedule.findByLineCode(lineCode).size()); |
| 77 | - | |
| 78 | - | |
| 79 | - //校验一下数据库和缓存的数据 | |
| 80 | - /*int dbCount = dayOfSchedule.dbCount(lineCode, currSchDate); | |
| 81 | - logger.info(lineCode + " 数据库数量:" + dbCount); | |
| 82 | - if(dbCount != dayOfSchedule.findByLineCode(lineCode).size()){ | |
| 83 | - logger.error("异常异常异常,,数据库和缓存数量不一致," + lineCode); | |
| 84 | - }*/ | |
| 85 | 77 | } |
| 86 | 78 | }catch (Exception e){ |
| 87 | 79 | logger.error("班次更新失败!! -" + lineCode, e); | ... | ... |
src/main/java/com/bsth/data/summary/entity/TempSchSituation.java
0 → 100644
| 1 | +package com.bsth.data.summary.entity; | |
| 2 | + | |
| 3 | +import javax.persistence.Entity; | |
| 4 | +import javax.persistence.Id; | |
| 5 | +import javax.persistence.Table; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * 临加情况 | |
| 9 | + * Created by panzhao on 2017/10/31. | |
| 10 | + */ | |
| 11 | +@Entity | |
| 12 | +@Table(name = "z_calc_temp_detail") | |
| 13 | +public class TempSchSituation { | |
| 14 | + | |
| 15 | + @Id | |
| 16 | + private Long id; | |
| 17 | + | |
| 18 | + private String rq; | |
| 19 | + | |
| 20 | + private String gsBm; | |
| 21 | + | |
| 22 | + private String fgsBm; | |
| 23 | + | |
| 24 | + private String lineCode; | |
| 25 | + | |
| 26 | + private String lineName; | |
| 27 | + | |
| 28 | + private String nbbm; | |
| 29 | + | |
| 30 | + private String jGh; | |
| 31 | + | |
| 32 | + private String sGh; | |
| 33 | + | |
| 34 | + private int size; | |
| 35 | + | |
| 36 | + private Double mileage; | |
| 37 | + | |
| 38 | + private Long t; | |
| 39 | + | |
| 40 | + private String remark; | |
| 41 | + | |
| 42 | + private String idsStr; | |
| 43 | + | |
| 44 | + public Long getId() { | |
| 45 | + return id; | |
| 46 | + } | |
| 47 | + | |
| 48 | + public void setId(Long id) { | |
| 49 | + this.id = id; | |
| 50 | + } | |
| 51 | + | |
| 52 | + public String getRq() { | |
| 53 | + return rq; | |
| 54 | + } | |
| 55 | + | |
| 56 | + public void setRq(String rq) { | |
| 57 | + this.rq = rq; | |
| 58 | + } | |
| 59 | + | |
| 60 | + public String getLineCode() { | |
| 61 | + return lineCode; | |
| 62 | + } | |
| 63 | + | |
| 64 | + public void setLineCode(String lineCode) { | |
| 65 | + this.lineCode = lineCode; | |
| 66 | + } | |
| 67 | + | |
| 68 | + public String getLineName() { | |
| 69 | + return lineName; | |
| 70 | + } | |
| 71 | + | |
| 72 | + public void setLineName(String lineName) { | |
| 73 | + this.lineName = lineName; | |
| 74 | + } | |
| 75 | + | |
| 76 | + public String getNbbm() { | |
| 77 | + return nbbm; | |
| 78 | + } | |
| 79 | + | |
| 80 | + public void setNbbm(String nbbm) { | |
| 81 | + this.nbbm = nbbm; | |
| 82 | + } | |
| 83 | + | |
| 84 | + public String getjGh() { | |
| 85 | + return jGh; | |
| 86 | + } | |
| 87 | + | |
| 88 | + public void setjGh(String jGh) { | |
| 89 | + this.jGh = jGh; | |
| 90 | + } | |
| 91 | + | |
| 92 | + public String getsGh() { | |
| 93 | + return sGh; | |
| 94 | + } | |
| 95 | + | |
| 96 | + public void setsGh(String sGh) { | |
| 97 | + this.sGh = sGh; | |
| 98 | + } | |
| 99 | + | |
| 100 | + public int getSize() { | |
| 101 | + return size; | |
| 102 | + } | |
| 103 | + | |
| 104 | + public void setSize(int size) { | |
| 105 | + this.size = size; | |
| 106 | + } | |
| 107 | + | |
| 108 | + public Double getMileage() { | |
| 109 | + return mileage; | |
| 110 | + } | |
| 111 | + | |
| 112 | + public void setMileage(Double mileage) { | |
| 113 | + this.mileage = mileage; | |
| 114 | + } | |
| 115 | + | |
| 116 | + public Long getT() { | |
| 117 | + return t; | |
| 118 | + } | |
| 119 | + | |
| 120 | + public void setT(Long t) { | |
| 121 | + this.t = t; | |
| 122 | + } | |
| 123 | + | |
| 124 | + public String getRemark() { | |
| 125 | + return remark; | |
| 126 | + } | |
| 127 | + | |
| 128 | + public void setRemark(String remark) { | |
| 129 | + this.remark = remark; | |
| 130 | + } | |
| 131 | + | |
| 132 | + public String getIdsStr() { | |
| 133 | + return idsStr; | |
| 134 | + } | |
| 135 | + | |
| 136 | + public void setIdsStr(String idsStr) { | |
| 137 | + this.idsStr = idsStr; | |
| 138 | + } | |
| 139 | + | |
| 140 | + public String getGsBm() { | |
| 141 | + return gsBm; | |
| 142 | + } | |
| 143 | + | |
| 144 | + public void setGsBm(String gsBm) { | |
| 145 | + this.gsBm = gsBm; | |
| 146 | + } | |
| 147 | + | |
| 148 | + public String getFgsBm() { | |
| 149 | + return fgsBm; | |
| 150 | + } | |
| 151 | + | |
| 152 | + public void setFgsBm(String fgsBm) { | |
| 153 | + this.fgsBm = fgsBm; | |
| 154 | + } | |
| 155 | +} | |
| 0 | 156 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/data/summary/repository/TempSchSituationRepository.java
0 → 100644
| 1 | +package com.bsth.data.summary.repository; | |
| 2 | + | |
| 3 | +import com.bsth.data.summary.entity.TempSchSituation; | |
| 4 | +import com.bsth.repository.BaseRepository; | |
| 5 | +import org.springframework.stereotype.Repository; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * Created by panzhao on 2017/11/1. | |
| 9 | + */ | |
| 10 | +@Repository | |
| 11 | +public interface TempSchSituationRepository extends BaseRepository<TempSchSituation, Long> { | |
| 12 | +} | ... | ... |
src/main/java/com/bsth/data/summary/service/TempSchSituationService.java
0 → 100644
| 1 | +package com.bsth.data.summary.service; | |
| 2 | + | |
| 3 | +import com.bsth.data.summary.entity.TempSchSituation; | |
| 4 | +import com.bsth.service.BaseService; | |
| 5 | + | |
| 6 | +import javax.servlet.http.HttpServletRequest; | |
| 7 | +import javax.servlet.http.HttpServletResponse; | |
| 8 | +import java.util.Map; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * Created by panzhao on 2017/11/1. | |
| 12 | + */ | |
| 13 | +public interface TempSchSituationService extends BaseService<TempSchSituation, Long> { | |
| 14 | + void excel(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response); | |
| 15 | +} | |
| 0 | 16 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/data/summary/service/impl/DestroySituationServiceImpl.java
| ... | ... | @@ -118,7 +118,7 @@ public class DestroySituationServiceImpl extends BaseServiceImpl<DestroySituatio |
| 118 | 118 | row.createCell(9).setCellValue(dys.getRemark()); |
| 119 | 119 | } |
| 120 | 120 | |
| 121 | - String name = list.get(0).getLineName(); | |
| 121 | + String name = "";//list.get(0).getLineName(); | |
| 122 | 122 | wb.setSheetName(0, name + "烂班明细"); |
| 123 | 123 | //response 输出 |
| 124 | 124 | String filename = name + map.get("rq_ge") + "至" + map.get("rq_le") + "烂班明细情况.xls"; | ... | ... |
src/main/java/com/bsth/data/summary/service/impl/TempSchSituationServiceImpl.java
0 → 100644
| 1 | +package com.bsth.data.summary.service.impl; | |
| 2 | + | |
| 3 | +import com.bsth.data.summary.entity.TempSchSituation; | |
| 4 | +import com.bsth.data.summary.service.TempSchSituationService; | |
| 5 | +import com.bsth.data.utils.CustomStringUtils; | |
| 6 | +import com.bsth.service.impl.BaseServiceImpl; | |
| 7 | +import org.apache.poi.hssf.usermodel.HSSFWorkbook; | |
| 8 | +import org.apache.poi.poifs.filesystem.POIFSFileSystem; | |
| 9 | +import org.apache.poi.ss.usermodel.Row; | |
| 10 | +import org.apache.poi.ss.usermodel.Sheet; | |
| 11 | +import org.slf4j.Logger; | |
| 12 | +import org.slf4j.LoggerFactory; | |
| 13 | +import org.springframework.stereotype.Service; | |
| 14 | + | |
| 15 | +import javax.servlet.http.HttpServletRequest; | |
| 16 | +import javax.servlet.http.HttpServletResponse; | |
| 17 | +import java.io.FileInputStream; | |
| 18 | +import java.io.OutputStream; | |
| 19 | +import java.net.URLEncoder; | |
| 20 | +import java.text.SimpleDateFormat; | |
| 21 | +import java.util.*; | |
| 22 | + | |
| 23 | +/** | |
| 24 | + * Created by panzhao on 2017/11/1. | |
| 25 | + */ | |
| 26 | +@Service | |
| 27 | +public class TempSchSituationServiceImpl extends BaseServiceImpl<TempSchSituation, Long> implements TempSchSituationService { | |
| 28 | + | |
| 29 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 30 | + | |
| 31 | + @Override | |
| 32 | + public Iterable<TempSchSituation> list(Map<String, Object> map) { | |
| 33 | + List<TempSchSituation> list = (List<TempSchSituation>) super.list(map); | |
| 34 | + | |
| 35 | + //排序 | |
| 36 | + Collections.sort(list, new Comparator<TempSchSituation>() { | |
| 37 | + @Override | |
| 38 | + public int compare(TempSchSituation o1, TempSchSituation o2) { | |
| 39 | + int i = o1.getRq().compareTo(o2.getRq()); | |
| 40 | + if (i != 0) | |
| 41 | + return i; | |
| 42 | + | |
| 43 | + i = o1.getLineName().compareTo(o2.getLineName()); | |
| 44 | + if (i != 0) | |
| 45 | + return i; | |
| 46 | + | |
| 47 | + i = (int) (o1.getT() - o2.getT()); | |
| 48 | + return i; | |
| 49 | + } | |
| 50 | + }); | |
| 51 | + return list; | |
| 52 | + } | |
| 53 | + | |
| 54 | + @Override | |
| 55 | + public void excel(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) { | |
| 56 | + try { | |
| 57 | + map.put("rq_le", CustomStringUtils.maxEndTime(map.get("rq_ge").toString() | |
| 58 | + , map.get("rq_le").toString(), 62)); | |
| 59 | + | |
| 60 | + List<TempSchSituation> list = (List<TempSchSituation>) super.list(map); | |
| 61 | + | |
| 62 | + if (list.size() == 0) { | |
| 63 | + response.setHeader("Content-type", "text/html;charset=UTF-8"); | |
| 64 | + response.getWriter().print("<span style='color:red;font-size:24px;'>根据查询条件没有搜索到数据,别导了!</span>"); | |
| 65 | + return; | |
| 66 | + } | |
| 67 | + | |
| 68 | + //排序 | |
| 69 | + Collections.sort(list, new Comparator<TempSchSituation>() { | |
| 70 | + @Override | |
| 71 | + public int compare(TempSchSituation o1, TempSchSituation o2) { | |
| 72 | + int i = o1.getRq().compareTo(o2.getRq()); | |
| 73 | + if (i != 0) | |
| 74 | + return i; | |
| 75 | + | |
| 76 | + i = o1.getLineName().compareTo(o2.getLineName()); | |
| 77 | + if (i != 0) | |
| 78 | + return i; | |
| 79 | + | |
| 80 | + i = (int) (o1.getT() - o2.getT()); | |
| 81 | + return i; | |
| 82 | + } | |
| 83 | + }); | |
| 84 | + | |
| 85 | + //输出excel | |
| 86 | + String basePath = Thread.currentThread().getContextClassLoader().getResource("").getPath(); | |
| 87 | + String filePath = basePath + "/static/pages/summary/excel/临加明细情况.xls"; | |
| 88 | + POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath)); | |
| 89 | + HSSFWorkbook wb = new HSSFWorkbook(fs); | |
| 90 | + | |
| 91 | + //写入数据 | |
| 92 | + Sheet sheet = wb.getSheetAt(0); | |
| 93 | + Row row; | |
| 94 | + TempSchSituation tss; | |
| 95 | + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); | |
| 96 | + for (int i = 0; i < list.size(); i++) { | |
| 97 | + tss = list.get(i); | |
| 98 | + row = sheet.createRow(i + 1); | |
| 99 | + row.createCell(0).setCellValue(tss.getRq()); | |
| 100 | + row.createCell(1).setCellValue(tss.getLineName()); | |
| 101 | + row.createCell(2).setCellValue(tss.getNbbm()); | |
| 102 | + row.createCell(3).setCellValue(tss.getjGh()); | |
| 103 | + row.createCell(4).setCellValue(tss.getsGh()); | |
| 104 | + row.createCell(5).setCellValue(tss.getSize()); | |
| 105 | + row.createCell(6).setCellValue(tss.getMileage()); | |
| 106 | + row.createCell(7).setCellValue(sdf.format(new Date(tss.getT()))); | |
| 107 | + row.createCell(8).setCellValue(tss.getRemark()); | |
| 108 | + } | |
| 109 | + | |
| 110 | + String name = "";//list.get(0).getLineName(); | |
| 111 | + wb.setSheetName(0, name + "临加明细"); | |
| 112 | + //response 输出 | |
| 113 | + String filename = name + map.get("rq_ge") + "至" + map.get("rq_le") + "临加明细情况.xls"; | |
| 114 | + response.setContentType("application/x-msdownload"); | |
| 115 | + response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); | |
| 116 | + | |
| 117 | + OutputStream os = response.getOutputStream(); | |
| 118 | + wb.write(os); | |
| 119 | + os.flush(); | |
| 120 | + os.close(); | |
| 121 | + } catch (Exception e) { | |
| 122 | + logger.error("", e); | |
| 123 | + } | |
| 124 | + } | |
| 125 | +} | |
| 0 | 126 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/email/MailAuthenticator.java
0 → 100644
| 1 | +package com.bsth.email; | |
| 2 | + | |
| 3 | +import javax.mail.Authenticator; | |
| 4 | +import javax.mail.PasswordAuthentication; | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * 服务器邮箱登录验证 | |
| 8 | + */ | |
| 9 | +public class MailAuthenticator extends Authenticator{ | |
| 10 | + /** | |
| 11 | + * 用户名(登录邮箱) | |
| 12 | + */ | |
| 13 | + private String username; | |
| 14 | + /** | |
| 15 | + * 密码 | |
| 16 | + */ | |
| 17 | + private String password; | |
| 18 | + | |
| 19 | + /** | |
| 20 | + * 初始化邮箱和密码 | |
| 21 | + * | |
| 22 | + * @param username | |
| 23 | + * 邮箱 | |
| 24 | + * @param password | |
| 25 | + * 密码 | |
| 26 | + */ | |
| 27 | + public MailAuthenticator(String username, String password) { | |
| 28 | + this.username = username; | |
| 29 | + this.password = password; | |
| 30 | + } | |
| 31 | + | |
| 32 | + String getPassword() { | |
| 33 | + return password; | |
| 34 | + } | |
| 35 | + | |
| 36 | + @Override | |
| 37 | + protected PasswordAuthentication getPasswordAuthentication() { | |
| 38 | + return new PasswordAuthentication(username, password); | |
| 39 | + } | |
| 40 | + | |
| 41 | + String getUsername() { | |
| 42 | + return username; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public void setPassword(String password) { | |
| 46 | + this.password = password; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public void setUsername(String username) { | |
| 50 | + this.username = username; | |
| 51 | + } | |
| 52 | +} | ... | ... |
src/main/java/com/bsth/email/SendEmailController.java
0 → 100644
| 1 | +package com.bsth.email; | |
| 2 | + | |
| 3 | +import com.bsth.email.entity.EmailBean; | |
| 4 | +import com.bsth.util.Tools; | |
| 5 | +import org.springframework.stereotype.Component; | |
| 6 | + | |
| 7 | +import java.util.List; | |
| 8 | + | |
| 9 | +@Component | |
| 10 | +public class SendEmailController { | |
| 11 | + | |
| 12 | + /* | |
| 13 | + * recipients | |
| 14 | + * 收件人集合 | |
| 15 | ||
| 16 | + * 邮件 | |
| 17 | + */ | |
| 18 | + public int sendMail(List<String> recipients,EmailBean mail){ | |
| 19 | + Tools t = new Tools("mailbox.properties"); | |
| 20 | + SimpleMailSender sms = new SimpleMailSender(t.getValue("username"),t.getValue("password")); | |
| 21 | + try { | |
| 22 | + for (String recipient : recipients) { | |
| 23 | + sms.send(recipient, mail.getSubject(),mail.getContent()); | |
| 24 | + } | |
| 25 | + } catch (Exception e) { | |
| 26 | + e.printStackTrace(); | |
| 27 | + return -1; | |
| 28 | + } | |
| 29 | + return 1; | |
| 30 | + } | |
| 31 | + | |
| 32 | + /* | |
| 33 | + * recipient | |
| 34 | + * 收件人 | |
| 35 | ||
| 36 | + * 邮件 | |
| 37 | + */ | |
| 38 | + public int sendMail(String recipient,EmailBean mail){ | |
| 39 | + Tools t = new Tools("mailbox.properties"); | |
| 40 | + SimpleMailSender sms = new SimpleMailSender(t.getValue("username"),t.getValue("password")); | |
| 41 | + try { | |
| 42 | + sms.send(recipient, mail.getSubject(),mail.getContent()); | |
| 43 | + } catch (Exception e) { | |
| 44 | + e.printStackTrace(); | |
| 45 | + return -1; | |
| 46 | + } | |
| 47 | + return 1; | |
| 48 | + } | |
| 49 | +} | ... | ... |
src/main/java/com/bsth/email/SimpleMailSender.java
0 → 100644
| 1 | +package com.bsth.email; | |
| 2 | + | |
| 3 | +import com.bsth.email.entity.EmailBean; | |
| 4 | + | |
| 5 | +import java.util.List; | |
| 6 | +import java.util.Properties; | |
| 7 | + | |
| 8 | +import javax.activation.CommandMap; | |
| 9 | +import javax.activation.MailcapCommandMap; | |
| 10 | +import javax.mail.MessagingException; | |
| 11 | +import javax.mail.Session; | |
| 12 | +import javax.mail.Transport; | |
| 13 | +import javax.mail.internet.AddressException; | |
| 14 | +import javax.mail.internet.InternetAddress; | |
| 15 | +import javax.mail.internet.MimeMessage; | |
| 16 | +import javax.mail.internet.MimeMessage.RecipientType; | |
| 17 | + | |
| 18 | + | |
| 19 | +public class SimpleMailSender { | |
| 20 | + /** | |
| 21 | + * 发送邮件的props文件 | |
| 22 | + */ | |
| 23 | + private final transient Properties props = System.getProperties(); | |
| 24 | + /** | |
| 25 | + * 邮件服务器登录验证 | |
| 26 | + */ | |
| 27 | + private transient MailAuthenticator authenticator; | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 邮箱session | |
| 31 | + */ | |
| 32 | + private transient Session session; | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 初始化邮件发送器 | |
| 36 | + * | |
| 37 | + * @param smtpHostName | |
| 38 | + * SMTP邮件服务器地址 | |
| 39 | + * @param username | |
| 40 | + * 发送邮件的用户名(地址) | |
| 41 | + * @param password | |
| 42 | + * 发送邮件的密码 | |
| 43 | + */ | |
| 44 | + public SimpleMailSender(final String smtpHostName, final String username, | |
| 45 | + final String password) { | |
| 46 | + init(username, password, smtpHostName); | |
| 47 | + } | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * 初始化邮件发送器 | |
| 51 | + * | |
| 52 | + * @param username | |
| 53 | + * 发送邮件的用户名(地址),并以此解析SMTP服务器地址 | |
| 54 | + * @param password | |
| 55 | + * 发送邮件的密码 | |
| 56 | + */ | |
| 57 | + public SimpleMailSender(final String username, final String password) { | |
| 58 | + //通过邮箱地址解析出smtp服务器,对大多数邮箱都管用 | |
| 59 | + final String smtpHostName = "smtp." + username.split("@")[1]; | |
| 60 | + init(username, password, smtpHostName); | |
| 61 | + | |
| 62 | + } | |
| 63 | + | |
| 64 | + /** | |
| 65 | + * 初始化 | |
| 66 | + * | |
| 67 | + * @param username | |
| 68 | + * 发送邮件的用户名(地址) | |
| 69 | + * @param password | |
| 70 | + * 密码 | |
| 71 | + * @param smtpHostName | |
| 72 | + * SMTP主机地址 | |
| 73 | + */ | |
| 74 | + private void init(String username, String password, String smtpHostName) { | |
| 75 | + // 初始化props | |
| 76 | + props.put("mail.smtp.auth", "true"); | |
| 77 | + props.put("mail.smtp.host", smtpHostName); | |
| 78 | + // 验证 | |
| 79 | + authenticator = new MailAuthenticator(username, password); | |
| 80 | + // 创建session | |
| 81 | + session = Session.getInstance(props, authenticator); | |
| 82 | + } | |
| 83 | + | |
| 84 | + /** | |
| 85 | + * 发送邮件 | |
| 86 | + * | |
| 87 | + * @param recipient | |
| 88 | + * 收件人邮箱地址 | |
| 89 | + * @param subject | |
| 90 | + * 邮件主题 | |
| 91 | + * @param content | |
| 92 | + * 邮件内容 | |
| 93 | + * @throws AddressException | |
| 94 | + * @throws MessagingException | |
| 95 | + */ | |
| 96 | + public void send(String recipient, String subject, Object content) | |
| 97 | + throws AddressException, MessagingException { | |
| 98 | + // 创建mime类型邮件 | |
| 99 | + final MimeMessage message = new MimeMessage(session); | |
| 100 | + // 设置发信人 | |
| 101 | + message.setFrom(new InternetAddress(authenticator.getUsername())); | |
| 102 | + // 设置收件人 | |
| 103 | + message.setRecipient(RecipientType.TO, new InternetAddress(recipient)); | |
| 104 | + // 设置主题 | |
| 105 | + message.setSubject(subject); | |
| 106 | + // 设置邮件内容 | |
| 107 | + message.setContent(content.toString(), "text/html;charset=utf-8"); | |
| 108 | + | |
| 109 | + MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); | |
| 110 | + mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); | |
| 111 | + mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); | |
| 112 | + mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); | |
| 113 | + mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); | |
| 114 | + mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); | |
| 115 | + CommandMap.setDefaultCommandMap(mc); | |
| 116 | + // 发送 | |
| 117 | + Transport.send(message); | |
| 118 | + } | |
| 119 | + | |
| 120 | + /** | |
| 121 | + * 群发邮件 | |
| 122 | + * | |
| 123 | + * @param recipients | |
| 124 | + * 收件人们 | |
| 125 | + * @param subject | |
| 126 | + * 主题 | |
| 127 | + * @param content | |
| 128 | + * 内容 | |
| 129 | + * @throws AddressException | |
| 130 | + * @throws MessagingException | |
| 131 | + */ | |
| 132 | + public void send(List<String> recipients, String subject, Object content) | |
| 133 | + throws AddressException, MessagingException { | |
| 134 | + // 创建mime类型邮件 | |
| 135 | + final MimeMessage message = new MimeMessage(session); | |
| 136 | + // 设置发信人 | |
| 137 | + message.setFrom(new InternetAddress(authenticator.getUsername())); | |
| 138 | + // 设置收件人们 | |
| 139 | + final int num = recipients.size(); | |
| 140 | + InternetAddress[] addresses = new InternetAddress[num]; | |
| 141 | + for (int i = 0; i < num; i++) { | |
| 142 | + addresses[i] = new InternetAddress(recipients.get(i)); | |
| 143 | + } | |
| 144 | + message.setRecipients(RecipientType.TO, addresses); | |
| 145 | + // 设置主题 | |
| 146 | + message.setSubject(subject); | |
| 147 | + // 设置邮件内容 | |
| 148 | + message.setContent(content.toString(), "text/html;charset=utf-8"); | |
| 149 | + // 发送 | |
| 150 | + Transport.send(message); | |
| 151 | + } | |
| 152 | + | |
| 153 | + /** | |
| 154 | + * 发送邮件 | |
| 155 | + * | |
| 156 | + * @param recipient | |
| 157 | + * 收件人邮箱地址 | |
| 158 | + * @param mail | |
| 159 | + * 邮件对象 | |
| 160 | + * @throws AddressException | |
| 161 | + * @throws MessagingException | |
| 162 | + */ | |
| 163 | + public void send(String recipient, EmailBean mail) | |
| 164 | + throws AddressException, MessagingException { | |
| 165 | + send(recipient, mail.getSubject(), mail.getContent()); | |
| 166 | + } | |
| 167 | + | |
| 168 | + /** | |
| 169 | + * 群发邮件 | |
| 170 | + * | |
| 171 | + * @param recipients | |
| 172 | + * 收件人们 | |
| 173 | + * @param mail | |
| 174 | + * 邮件对象 | |
| 175 | + * @throws AddressException | |
| 176 | + * @throws MessagingException | |
| 177 | + */ | |
| 178 | + public void send(List<String> recipients, EmailBean mail) | |
| 179 | + throws AddressException, MessagingException { | |
| 180 | + send(recipients, mail.getSubject(), mail.getContent()); | |
| 181 | + } | |
| 182 | +} | ... | ... |
src/main/java/com/bsth/email/entity/EmailBean.java
0 → 100644
| 1 | +package com.bsth.email.entity; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * Created by zlz on 2017-12-29. | |
| 5 | + */ | |
| 6 | +public class EmailBean { | |
| 7 | + private String subject;// 邮件标题 | |
| 8 | + private String content;//邮件内容 | |
| 9 | + public String getSubject() { | |
| 10 | + return subject; | |
| 11 | + } | |
| 12 | + public void setSubject(String subject) { | |
| 13 | + this.subject = subject; | |
| 14 | + } | |
| 15 | + public String getContent() { | |
| 16 | + return content; | |
| 17 | + } | |
| 18 | + public void setContent(String content) { | |
| 19 | + this.content = content; | |
| 20 | + } | |
| 21 | +} | ... | ... |
src/main/java/com/bsth/entity/Line.java
| ... | ... | @@ -160,6 +160,11 @@ public class Line implements Serializable { |
| 160 | 160 | |
| 161 | 161 | /** 是否在使用 <1:是;0:否> bit length(50) */ |
| 162 | 162 | private Integer inUse; |
| 163 | + | |
| 164 | + /** | |
| 165 | + * 逻辑删除标记 为 1:标识已删除 | |
| 166 | + */ | |
| 167 | + private Integer remove; | |
| 163 | 168 | |
| 164 | 169 | public Integer getSpacGrade() { |
| 165 | 170 | return spacGrade; |
| ... | ... | @@ -492,6 +497,13 @@ public class Line implements Serializable { |
| 492 | 497 | public void setSfyy(Integer sfyy) { |
| 493 | 498 | this.sfyy = sfyy; |
| 494 | 499 | } |
| 495 | - | |
| 496 | - | |
| 500 | + | |
| 501 | + | |
| 502 | + public Integer getRemove() { | |
| 503 | + return remove; | |
| 504 | + } | |
| 505 | + | |
| 506 | + public void setRemove(Integer remove) { | |
| 507 | + this.remove = remove; | |
| 508 | + } | |
| 497 | 509 | } | ... | ... |
src/main/java/com/bsth/entity/LonLatName.java
0 → 100644
| 1 | +package com.bsth.entity; | |
| 2 | + | |
| 3 | +public class LonLatName { | |
| 4 | + public String first_name; | |
| 5 | + public String second_name; | |
| 6 | + public String way_name; | |
| 7 | + public String location; | |
| 8 | + | |
| 9 | + public String getFirst_name() { | |
| 10 | + return first_name; | |
| 11 | + } | |
| 12 | + | |
| 13 | + public void setFirst_name(String first_name) { | |
| 14 | + this.first_name = first_name; | |
| 15 | + } | |
| 16 | + | |
| 17 | + public String getSecond_name() { | |
| 18 | + return second_name; | |
| 19 | + } | |
| 20 | + | |
| 21 | + public void setSecond_name(String second_name) { | |
| 22 | + this.second_name = second_name; | |
| 23 | + } | |
| 24 | + | |
| 25 | + public String getWay_name() { | |
| 26 | + return way_name; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public void setWay_name(String way_name) { | |
| 30 | + this.way_name = way_name; | |
| 31 | + } | |
| 32 | + public String getLocation() { | |
| 33 | + return location; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public void setLocation(String location) { | |
| 37 | + this.location = location; | |
| 38 | + } | |
| 39 | +} | ... | ... |
src/main/java/com/bsth/entity/directive/Directive.java
| ... | ... | @@ -28,6 +28,8 @@ public class Directive { |
| 28 | 28 | * 时间戳 |
| 29 | 29 | */ |
| 30 | 30 | protected Long timestamp; |
| 31 | + | |
| 32 | + private String rq; | |
| 31 | 33 | |
| 32 | 34 | /** |
| 33 | 35 | * 时间 HH:mm |
| ... | ... | @@ -113,4 +115,12 @@ public class Directive { |
| 113 | 115 | public void setSender(String sender) { |
| 114 | 116 | this.sender = sender; |
| 115 | 117 | } |
| 118 | + | |
| 119 | + public String getRq() { | |
| 120 | + return rq; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public void setRq(String rq) { | |
| 124 | + this.rq = rq; | |
| 125 | + } | |
| 116 | 126 | } | ... | ... |
src/main/java/com/bsth/entity/geo_data/GeoLineVersionInfo.java
0 → 100644
| 1 | +package com.bsth.entity.geo_data; | |
| 2 | + | |
| 3 | +import java.util.Date; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 线路版本信息 | |
| 7 | + * Created by panzhao on 2017/12/18. | |
| 8 | + */ | |
| 9 | +public class GeoLineVersionInfo { | |
| 10 | + /** ID 主键(唯一标识符) int length(11) */ | |
| 11 | + private Integer id; | |
| 12 | + | |
| 13 | + /** 线路版本名字 varchar length(50) | |
| 14 | + * 给排版人员选版本使用 | |
| 15 | + * */ | |
| 16 | + private String name; | |
| 17 | + | |
| 18 | + /** 线路ID int length(11) */ | |
| 19 | + private Integer line; | |
| 20 | + | |
| 21 | + /** 线路编码 varchar length(50) */ | |
| 22 | + private String lineCode; | |
| 23 | + | |
| 24 | + /** 版本号 int length(11) */ | |
| 25 | + private int versions; | |
| 26 | + | |
| 27 | + /** 启用日期 timestamp */ | |
| 28 | + private Date startDate; | |
| 29 | + | |
| 30 | + /** 终止日期 timestamp */ | |
| 31 | + private Date endDate; | |
| 32 | + | |
| 33 | + /** 创建日期 timestamp */ | |
| 34 | + private Date createDate; | |
| 35 | + | |
| 36 | + /** 修改日期 timestamp */ | |
| 37 | + private Date updateDate; | |
| 38 | + | |
| 39 | + /** 备注 varchar length(50) */ | |
| 40 | + private String remark; | |
| 41 | + | |
| 42 | + /** 版本状态 int length(11) | |
| 43 | + * 0(历史版本),1(当前版本),2(待更新版本) | |
| 44 | + */ | |
| 45 | + private int status; | |
| 46 | + | |
| 47 | + /** | |
| 48 | + * 是否发布 int length(1) | |
| 49 | + * 0(没有),1(发布) | |
| 50 | + */ | |
| 51 | + private int isupdate; | |
| 52 | + | |
| 53 | + private String lineName; | |
| 54 | + | |
| 55 | + public Integer getId() { | |
| 56 | + return id; | |
| 57 | + } | |
| 58 | + | |
| 59 | + public void setId(Integer id) { | |
| 60 | + this.id = id; | |
| 61 | + } | |
| 62 | + | |
| 63 | + public String getName() { | |
| 64 | + return name; | |
| 65 | + } | |
| 66 | + | |
| 67 | + public void setName(String name) { | |
| 68 | + this.name = name; | |
| 69 | + } | |
| 70 | + | |
| 71 | + public String getLineCode() { | |
| 72 | + return lineCode; | |
| 73 | + } | |
| 74 | + | |
| 75 | + public void setLineCode(String lineCode) { | |
| 76 | + this.lineCode = lineCode; | |
| 77 | + } | |
| 78 | + | |
| 79 | + public int getVersions() { | |
| 80 | + return versions; | |
| 81 | + } | |
| 82 | + | |
| 83 | + public void setVersions(int versions) { | |
| 84 | + this.versions = versions; | |
| 85 | + } | |
| 86 | + | |
| 87 | + public Date getStartDate() { | |
| 88 | + return startDate; | |
| 89 | + } | |
| 90 | + | |
| 91 | + public void setStartDate(Date startDate) { | |
| 92 | + this.startDate = startDate; | |
| 93 | + } | |
| 94 | + | |
| 95 | + public Date getEndDate() { | |
| 96 | + return endDate; | |
| 97 | + } | |
| 98 | + | |
| 99 | + public void setEndDate(Date endDate) { | |
| 100 | + this.endDate = endDate; | |
| 101 | + } | |
| 102 | + | |
| 103 | + public Date getCreateDate() { | |
| 104 | + return createDate; | |
| 105 | + } | |
| 106 | + | |
| 107 | + public void setCreateDate(Date createDate) { | |
| 108 | + this.createDate = createDate; | |
| 109 | + } | |
| 110 | + | |
| 111 | + public Date getUpdateDate() { | |
| 112 | + return updateDate; | |
| 113 | + } | |
| 114 | + | |
| 115 | + public void setUpdateDate(Date updateDate) { | |
| 116 | + this.updateDate = updateDate; | |
| 117 | + } | |
| 118 | + | |
| 119 | + public String getRemark() { | |
| 120 | + return remark; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public void setRemark(String remark) { | |
| 124 | + this.remark = remark; | |
| 125 | + } | |
| 126 | + | |
| 127 | + public int getStatus() { | |
| 128 | + return status; | |
| 129 | + } | |
| 130 | + | |
| 131 | + public void setStatus(int status) { | |
| 132 | + this.status = status; | |
| 133 | + } | |
| 134 | + | |
| 135 | + public int getIsupdate() { | |
| 136 | + return isupdate; | |
| 137 | + } | |
| 138 | + | |
| 139 | + public void setIsupdate(int isupdate) { | |
| 140 | + this.isupdate = isupdate; | |
| 141 | + } | |
| 142 | + | |
| 143 | + public String getLineName() { | |
| 144 | + return lineName; | |
| 145 | + } | |
| 146 | + | |
| 147 | + public void setLineName(String lineName) { | |
| 148 | + this.lineName = lineName; | |
| 149 | + } | |
| 150 | + | |
| 151 | + public Integer getLine() { | |
| 152 | + return line; | |
| 153 | + } | |
| 154 | + | |
| 155 | + public void setLine(Integer line) { | |
| 156 | + this.line = line; | |
| 157 | + } | |
| 158 | +} | ... | ... |
src/main/java/com/bsth/entity/geo_data/GeoStation.java
| 1 | -package com.bsth.entity.geo_data; | |
| 2 | - | |
| 3 | -import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 4 | - | |
| 5 | -import java.util.List; | |
| 6 | - | |
| 7 | -/** | |
| 8 | - * Created by panzhao on 2017/12/7. | |
| 9 | - */ | |
| 10 | -public class GeoStation { | |
| 11 | - | |
| 12 | - private int id; | |
| 13 | - | |
| 14 | - private String stationName; | |
| 15 | - | |
| 16 | - private String stationRouteCode; | |
| 17 | - | |
| 18 | - private String lineCode; | |
| 19 | - | |
| 20 | - private Integer directions; | |
| 21 | - | |
| 22 | - private String stationCode; | |
| 23 | - | |
| 24 | - private String stationMark; | |
| 25 | - | |
| 26 | - private Integer version; | |
| 27 | - | |
| 28 | - private Float gLonx; | |
| 29 | - | |
| 30 | - private Float gLaty; | |
| 31 | - | |
| 32 | - @JsonIgnore | |
| 33 | - private String gPolygonGrid; | |
| 34 | - | |
| 35 | - private List<String> bdCoords; | |
| 36 | - | |
| 37 | - private Integer radius; | |
| 38 | - | |
| 39 | - private String shapesType; | |
| 40 | - | |
| 41 | - public int getId() { | |
| 42 | - return id; | |
| 43 | - } | |
| 44 | - | |
| 45 | - public void setId(int id) { | |
| 46 | - this.id = id; | |
| 47 | - } | |
| 48 | - | |
| 49 | - public String getStationName() { | |
| 50 | - return stationName; | |
| 51 | - } | |
| 52 | - | |
| 53 | - public void setStationName(String stationName) { | |
| 54 | - this.stationName = stationName; | |
| 55 | - } | |
| 56 | - | |
| 57 | - public String getStationRouteCode() { | |
| 58 | - return stationRouteCode; | |
| 59 | - } | |
| 60 | - | |
| 61 | - public void setStationRouteCode(String stationRouteCode) { | |
| 62 | - this.stationRouteCode = stationRouteCode; | |
| 63 | - } | |
| 64 | - | |
| 65 | - public String getLineCode() { | |
| 66 | - return lineCode; | |
| 67 | - } | |
| 68 | - | |
| 69 | - public void setLineCode(String lineCode) { | |
| 70 | - this.lineCode = lineCode; | |
| 71 | - } | |
| 72 | - | |
| 73 | - public Integer getDirections() { | |
| 74 | - return directions; | |
| 75 | - } | |
| 76 | - | |
| 77 | - public void setDirections(Integer directions) { | |
| 78 | - this.directions = directions; | |
| 79 | - } | |
| 80 | - | |
| 81 | - public String getStationCode() { | |
| 82 | - return stationCode; | |
| 83 | - } | |
| 84 | - | |
| 85 | - public void setStationCode(String stationCode) { | |
| 86 | - this.stationCode = stationCode; | |
| 87 | - } | |
| 88 | - | |
| 89 | - public String getStationMark() { | |
| 90 | - return stationMark; | |
| 91 | - } | |
| 92 | - | |
| 93 | - public void setStationMark(String stationMark) { | |
| 94 | - this.stationMark = stationMark; | |
| 95 | - } | |
| 96 | - | |
| 97 | - public Integer getVersion() { | |
| 98 | - return version; | |
| 99 | - } | |
| 100 | - | |
| 101 | - public void setVersion(Integer version) { | |
| 102 | - this.version = version; | |
| 103 | - } | |
| 104 | - | |
| 105 | - public Float getgLonx() { | |
| 106 | - return gLonx; | |
| 107 | - } | |
| 108 | - | |
| 109 | - public void setgLonx(Float gLonx) { | |
| 110 | - this.gLonx = gLonx; | |
| 111 | - } | |
| 112 | - | |
| 113 | - public Float getgLaty() { | |
| 114 | - return gLaty; | |
| 115 | - } | |
| 116 | - | |
| 117 | - public void setgLaty(Float gLaty) { | |
| 118 | - this.gLaty = gLaty; | |
| 119 | - } | |
| 120 | - | |
| 121 | - public String getgPolygonGrid() { | |
| 122 | - return gPolygonGrid; | |
| 123 | - } | |
| 124 | - | |
| 125 | - public void setgPolygonGrid(String gPolygonGrid) { | |
| 126 | - this.gPolygonGrid = gPolygonGrid; | |
| 127 | - } | |
| 128 | - | |
| 129 | - public Integer getRadius() { | |
| 130 | - return radius; | |
| 131 | - } | |
| 132 | - | |
| 133 | - public void setRadius(Integer radius) { | |
| 134 | - this.radius = radius; | |
| 135 | - } | |
| 136 | - | |
| 137 | - public String getShapesType() { | |
| 138 | - return shapesType; | |
| 139 | - } | |
| 140 | - | |
| 141 | - public void setShapesType(String shapesType) { | |
| 142 | - this.shapesType = shapesType; | |
| 143 | - } | |
| 144 | - | |
| 145 | - public List<String> getBdCoords() { | |
| 146 | - return bdCoords; | |
| 147 | - } | |
| 148 | - | |
| 149 | - public void setBdCoords(List<String> bdCoords) { | |
| 150 | - this.bdCoords = bdCoords; | |
| 151 | - } | |
| 1 | +package com.bsth.entity.geo_data; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 4 | + | |
| 5 | +import java.util.List; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * Created by panzhao on 2017/12/7. | |
| 9 | + */ | |
| 10 | +public class GeoStation { | |
| 11 | + | |
| 12 | + private int id; | |
| 13 | + | |
| 14 | + private String stationName; | |
| 15 | + | |
| 16 | + private String stationRouteCode; | |
| 17 | + | |
| 18 | + private String lineCode; | |
| 19 | + | |
| 20 | + private Integer directions; | |
| 21 | + | |
| 22 | + private String stationCode; | |
| 23 | + | |
| 24 | + private String stationMark; | |
| 25 | + | |
| 26 | + private Integer versions; | |
| 27 | + | |
| 28 | + private Float gLonx; | |
| 29 | + | |
| 30 | + private Float gLaty; | |
| 31 | + | |
| 32 | + @JsonIgnore | |
| 33 | + private String gPolygonGrid; | |
| 34 | + | |
| 35 | + private List<String> bdCoords; | |
| 36 | + | |
| 37 | + private Integer radius; | |
| 38 | + | |
| 39 | + private String shapesType; | |
| 40 | + | |
| 41 | + public int getId() { | |
| 42 | + return id; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public void setId(int id) { | |
| 46 | + this.id = id; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public String getStationName() { | |
| 50 | + return stationName; | |
| 51 | + } | |
| 52 | + | |
| 53 | + public void setStationName(String stationName) { | |
| 54 | + this.stationName = stationName; | |
| 55 | + } | |
| 56 | + | |
| 57 | + public String getStationRouteCode() { | |
| 58 | + return stationRouteCode; | |
| 59 | + } | |
| 60 | + | |
| 61 | + public void setStationRouteCode(String stationRouteCode) { | |
| 62 | + this.stationRouteCode = stationRouteCode; | |
| 63 | + } | |
| 64 | + | |
| 65 | + public String getLineCode() { | |
| 66 | + return lineCode; | |
| 67 | + } | |
| 68 | + | |
| 69 | + public void setLineCode(String lineCode) { | |
| 70 | + this.lineCode = lineCode; | |
| 71 | + } | |
| 72 | + | |
| 73 | + public Integer getDirections() { | |
| 74 | + return directions; | |
| 75 | + } | |
| 76 | + | |
| 77 | + public void setDirections(Integer directions) { | |
| 78 | + this.directions = directions; | |
| 79 | + } | |
| 80 | + | |
| 81 | + public String getStationCode() { | |
| 82 | + return stationCode; | |
| 83 | + } | |
| 84 | + | |
| 85 | + public void setStationCode(String stationCode) { | |
| 86 | + this.stationCode = stationCode; | |
| 87 | + } | |
| 88 | + | |
| 89 | + public String getStationMark() { | |
| 90 | + return stationMark; | |
| 91 | + } | |
| 92 | + | |
| 93 | + public void setStationMark(String stationMark) { | |
| 94 | + this.stationMark = stationMark; | |
| 95 | + } | |
| 96 | + | |
| 97 | + public Float getgLonx() { | |
| 98 | + return gLonx; | |
| 99 | + } | |
| 100 | + | |
| 101 | + public void setgLonx(Float gLonx) { | |
| 102 | + this.gLonx = gLonx; | |
| 103 | + } | |
| 104 | + | |
| 105 | + public Float getgLaty() { | |
| 106 | + return gLaty; | |
| 107 | + } | |
| 108 | + | |
| 109 | + public void setgLaty(Float gLaty) { | |
| 110 | + this.gLaty = gLaty; | |
| 111 | + } | |
| 112 | + | |
| 113 | + public String getgPolygonGrid() { | |
| 114 | + return gPolygonGrid; | |
| 115 | + } | |
| 116 | + | |
| 117 | + public void setgPolygonGrid(String gPolygonGrid) { | |
| 118 | + this.gPolygonGrid = gPolygonGrid; | |
| 119 | + } | |
| 120 | + | |
| 121 | + public Integer getRadius() { | |
| 122 | + return radius; | |
| 123 | + } | |
| 124 | + | |
| 125 | + public void setRadius(Integer radius) { | |
| 126 | + this.radius = radius; | |
| 127 | + } | |
| 128 | + | |
| 129 | + public String getShapesType() { | |
| 130 | + return shapesType; | |
| 131 | + } | |
| 132 | + | |
| 133 | + public void setShapesType(String shapesType) { | |
| 134 | + this.shapesType = shapesType; | |
| 135 | + } | |
| 136 | + | |
| 137 | + public List<String> getBdCoords() { | |
| 138 | + return bdCoords; | |
| 139 | + } | |
| 140 | + | |
| 141 | + public void setBdCoords(List<String> bdCoords) { | |
| 142 | + this.bdCoords = bdCoords; | |
| 143 | + } | |
| 144 | + | |
| 145 | + public Integer getVersions() { | |
| 146 | + return versions; | |
| 147 | + } | |
| 148 | + | |
| 149 | + public void setVersions(Integer versions) { | |
| 150 | + this.versions = versions; | |
| 151 | + } | |
| 152 | 152 | } |
| 153 | 153 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/entity/oil/Dlb.java
| ... | ... | @@ -58,6 +58,8 @@ public class Dlb { |
| 58 | 58 | private int nylx; |
| 59 | 59 | //进场顺序(根据最先出场和最后进场来关联车辆的存电量) |
| 60 | 60 | private int jcsx; |
| 61 | + | |
| 62 | + private String jname; | |
| 61 | 63 | @Transient |
| 62 | 64 | private String name; |
| 63 | 65 | @Transient |
| ... | ... | @@ -73,7 +75,8 @@ public class Dlb { |
| 73 | 75 | private String fgsname; |
| 74 | 76 | |
| 75 | 77 | |
| 76 | - private String lp=""; | |
| 78 | + | |
| 79 | + private String lp; | |
| 77 | 80 | |
| 78 | 81 | public Integer getId() { |
| 79 | 82 | return id; |
| ... | ... | @@ -391,6 +394,14 @@ public class Dlb { |
| 391 | 394 | public void setLp(String lp) { |
| 392 | 395 | this.lp = lp; |
| 393 | 396 | } |
| 397 | + | |
| 398 | + public String getJname() { | |
| 399 | + return jname; | |
| 400 | + } | |
| 401 | + | |
| 402 | + public void setJname(String jname) { | |
| 403 | + this.jname = jname; | |
| 404 | + } | |
| 394 | 405 | |
| 395 | 406 | |
| 396 | 407 | ... | ... |
src/main/java/com/bsth/entity/oil/Ylb.java
| ... | ... | @@ -26,6 +26,7 @@ public class Ylb { |
| 26 | 26 | private String fgsdm; |
| 27 | 27 | private String nbbm; |
| 28 | 28 | private String jsy; |
| 29 | + private String jname; | |
| 29 | 30 | private Double czlc=0.0; |
| 30 | 31 | private Double jzlc=0.0; |
| 31 | 32 | private Double czyl=0.0; |
| ... | ... | @@ -56,7 +57,7 @@ public class Ylb { |
| 56 | 57 | //进场顺序(根据最先出场和最后进场来关联车辆的存油量) |
| 57 | 58 | private int jcsx; |
| 58 | 59 | |
| 59 | - private String lp=""; | |
| 60 | + private String lp; | |
| 60 | 61 | @Transient |
| 61 | 62 | private String bglyh; |
| 62 | 63 | |
| ... | ... | @@ -339,6 +340,14 @@ public class Ylb { |
| 339 | 340 | public void setLp(String lp) { |
| 340 | 341 | this.lp = lp; |
| 341 | 342 | } |
| 343 | + | |
| 344 | + public String getJname() { | |
| 345 | + return jname; | |
| 346 | + } | |
| 347 | + | |
| 348 | + public void setJname(String jname) { | |
| 349 | + this.jname = jname; | |
| 350 | + } | |
| 342 | 351 | |
| 343 | 352 | |
| 344 | 353 | } | ... | ... |
src/main/java/com/bsth/entity/schedule/TTInfo.java
| ... | ... | @@ -67,6 +67,10 @@ public class TTInfo extends BEntity { |
| 67 | 67 | /** 最近备份日期 */ |
| 68 | 68 | private Date lastBackUpDate; |
| 69 | 69 | |
| 70 | + /** 线路版本(bsth_c_line_versions表对应字段) */ | |
| 71 | + @Column(nullable = false) | |
| 72 | + private int lineVersion; | |
| 73 | + | |
| 70 | 74 | public TTInfo() {} |
| 71 | 75 | public TTInfo(Object id, Object xlid, Object name, Object nds, Object sds) { |
| 72 | 76 | if (id != null) { |
| ... | ... | @@ -109,7 +113,9 @@ public class TTInfo extends BEntity { |
| 109 | 113 | .setUpdateUser(getUpdateBy() == null ? 0 : getUpdateBy().getId()) |
| 110 | 114 | .setUpdateUserName(getUpdateBy() == null ? "" : getUpdateBy().getUserName()) |
| 111 | 115 | .setCreateDate(getCreateDate() == null ? 0l : getCreateDate().getTime()) |
| 112 | - .setUpdateDate(getUpdateDate() == null ? 0l : getUpdateDate().getTime()); | |
| 116 | + .setUpdateDate(getUpdateDate() == null ? 0l : getUpdateDate().getTime()) | |
| 117 | + .setLineVersion(lineVersion) | |
| 118 | + ; | |
| 113 | 119 | |
| 114 | 120 | } |
| 115 | 121 | |
| ... | ... | @@ -216,4 +222,12 @@ public class TTInfo extends BEntity { |
| 216 | 222 | public void setLastBackUpDate(Date lastBackUpDate) { |
| 217 | 223 | this.lastBackUpDate = lastBackUpDate; |
| 218 | 224 | } |
| 225 | + | |
| 226 | + public int getLineVersion() { | |
| 227 | + return lineVersion; | |
| 228 | + } | |
| 229 | + | |
| 230 | + public void setLineVersion(int lineVersion) { | |
| 231 | + this.lineVersion = lineVersion; | |
| 232 | + } | |
| 219 | 233 | } | ... | ... |
src/main/java/com/bsth/entity/schedule/TTInfoBackup.java
| ... | ... | @@ -36,6 +36,10 @@ public class TTInfoBackup { |
| 36 | 36 | @Lob |
| 37 | 37 | private byte[] backUpInfo; |
| 38 | 38 | |
| 39 | + /** 线路版本(bsth_c_line_versions表对应字段) */ | |
| 40 | + @Column(nullable = false) | |
| 41 | + private int lineVersion; | |
| 42 | + | |
| 39 | 43 | public Long getId() { |
| 40 | 44 | return id; |
| 41 | 45 | } |
| ... | ... | @@ -91,4 +95,12 @@ public class TTInfoBackup { |
| 91 | 95 | public void setBackUpInfo(byte[] backUpInfo) { |
| 92 | 96 | this.backUpInfo = backUpInfo; |
| 93 | 97 | } |
| 98 | + | |
| 99 | + public int getLineVersion() { | |
| 100 | + return lineVersion; | |
| 101 | + } | |
| 102 | + | |
| 103 | + public void setLineVersion(int lineVersion) { | |
| 104 | + this.lineVersion = lineVersion; | |
| 105 | + } | |
| 94 | 106 | } | ... | ... |
src/main/java/com/bsth/entity/schedule/TTInfoDetail.java
| ... | ... | @@ -100,6 +100,10 @@ public class TTInfoDetail extends BEntity { |
| 100 | 100 | /** 备注 */ |
| 101 | 101 | private String remark; |
| 102 | 102 | |
| 103 | + /** 线路版本(bsth_c_line_versions表对应字段) */ | |
| 104 | + @Column(nullable = false) | |
| 105 | + private int lineVersion; | |
| 106 | + | |
| 103 | 107 | /** |
| 104 | 108 | * 输出proto生成的builder |
| 105 | 109 | * @return |
| ... | ... | @@ -126,6 +130,7 @@ public class TTInfoDetail extends BEntity { |
| 126 | 130 | .setIsFB(isFB == null ? false : isFB) |
| 127 | 131 | .setIsTS(isTS == null ? false : isTS) |
| 128 | 132 | .setRemark(remark == null ? "" : remark) |
| 133 | + .setLineVersion(lineVersion) | |
| 129 | 134 | ; |
| 130 | 135 | } |
| 131 | 136 | |
| ... | ... | @@ -320,4 +325,12 @@ public class TTInfoDetail extends BEntity { |
| 320 | 325 | public void setIsTS(Boolean isTS) { |
| 321 | 326 | this.isTS = isTS; |
| 322 | 327 | } |
| 328 | + | |
| 329 | + public int getLineVersion() { | |
| 330 | + return lineVersion; | |
| 331 | + } | |
| 332 | + | |
| 333 | + public void setLineVersion(int lineVersion) { | |
| 334 | + this.lineVersion = lineVersion; | |
| 335 | + } | |
| 323 | 336 | } | ... | ... |
src/main/java/com/bsth/filter/BaseFilter.java
| ... | ... | @@ -17,7 +17,7 @@ public abstract class BaseFilter implements Filter { |
| 17 | 17 | * 白名单 |
| 18 | 18 | */ |
| 19 | 19 | private String[] whiteListURLs = { Constants.LOGIN_PAGE,Constants.CAPTCHA, Constants.SERVICE_INTERFACE, |
| 20 | - Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS, Constants.UP_RFID_URL }; | |
| 20 | + Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS, Constants.UP_RFID_URL, Constants.STATION_AND_SECTION_COUNT }; | |
| 21 | 21 | |
| 22 | 22 | @Override |
| 23 | 23 | public void destroy() { | ... | ... |
src/main/java/com/bsth/repository/CarDeviceRepository.java
| 1 | 1 | package com.bsth.repository; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.entity.CarDevice; |
| 4 | + | |
| 5 | +import java.util.Date; | |
| 6 | +import java.util.List; | |
| 7 | + | |
| 8 | +import org.springframework.data.jpa.repository.Query; | |
| 4 | 9 | import org.springframework.stereotype.Repository; |
| 5 | 10 | |
| 6 | 11 | /** |
| ... | ... | @@ -8,4 +13,6 @@ import org.springframework.stereotype.Repository; |
| 8 | 13 | */ |
| 9 | 14 | @Repository |
| 10 | 15 | public interface CarDeviceRepository extends BaseRepository<CarDevice, Long> { |
| 16 | + @Query(value="select s from CarDevice s where s.oldDeviceNo=?1 and s.qyrq>=?2 ") | |
| 17 | + List<CarDevice> findCarDevice(String device,Date date ); | |
| 11 | 18 | } | ... | ... |
src/main/java/com/bsth/repository/CarsRepository.java
| ... | ... | @@ -15,4 +15,7 @@ public interface CarsRepository extends BaseRepository<Cars, Integer>{ |
| 15 | 15 | |
| 16 | 16 | @Query(value="select s from Cars s") |
| 17 | 17 | List<Cars> findCars(); |
| 18 | + | |
| 19 | + @Query(value="select s from Cars s where s.insideCode=?1") | |
| 20 | + List<Cars> findCarsByCode(String insideCode); | |
| 18 | 21 | } | ... | ... |
src/main/java/com/bsth/repository/SectionRouteRepository.java
| ... | ... | @@ -172,9 +172,13 @@ public interface SectionRouteRepository extends BaseRepository<SectionRoute, Int |
| 172 | 172 | void isRoadSpeedUpd(Integer isR,Integer line,Integer directions); |
| 173 | 173 | |
| 174 | 174 | @Modifying |
| 175 | - @Query(value="UPDATE bsth_c_sectionroute set sectionroute_code = (sectionroute_code+10) where line = ?1 and directions = ?2 and sectionroute_code >=?3 and destroy = 0", nativeQuery=true) | |
| 175 | + @Query(value="UPDATE bsth_c_sectionroute set sectionroute_code = (sectionroute_code+100) where line = ?1 and directions = ?2 and sectionroute_code >=?3 and destroy = 0", nativeQuery=true) | |
| 176 | 176 | public void sectionUpdSectionRouteCode(Integer line,Integer dir,Integer routeCod); |
| 177 | - | |
| 177 | + | |
| 178 | + @Modifying | |
| 179 | + @Query(value="UPDATE bsth_c_sectionroute set sectionroute_code = (sectionroute_code+100) where line_code = ?1 and directions = ?2 and sectionroute_code >=?3 and destroy = 0", nativeQuery=true) | |
| 180 | + public void sectionUpdSectionRouteCode(String lineCode,Integer dir,int routeCod); | |
| 181 | + | |
| 178 | 182 | @Modifying |
| 179 | 183 | @Query(value="UPDATE bsth_c_sectionroute set destroy = 1 where id = ?1", nativeQuery=true) |
| 180 | 184 | public void sectionRouteIsDestroyUpdBatch(Integer id); | ... | ... |
src/main/java/com/bsth/repository/StationRouteRepository.java
| ... | ... | @@ -102,8 +102,79 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int |
| 102 | 102 | "select MAX(station_route_code) as stationRouteCode from bsth_c_stationroute r WHERE " + |
| 103 | 103 | "r.line=?1 and r.directions =?2 and station_route_code< ?3 and r.destroy = 0 ) and t.line=?1 and t.directions = ?2 AND t.destroy = 0", nativeQuery=true) |
| 104 | 104 | List<Object[]> findUpStationRouteCode(Integer lineId,Integer direction,Integer stationRouteCode); |
| 105 | - | |
| 106 | - | |
| 105 | + | |
| 106 | + /** | |
| 107 | + * @Description :TODO(查询下个站点) | |
| 108 | + * | |
| 109 | + * @param map <lineId:线路ID; direction:方向;stationRouteCode:站点编码> | |
| 110 | + * | |
| 111 | + * @return List<Map<String, Object>> | |
| 112 | + */ | |
| 113 | + @Query(value = "SELECT a.stationRouteLine," + | |
| 114 | + " a.stationRouteStation," + | |
| 115 | + " a.stationRouteCode," + | |
| 116 | + " a.stationRouteLIneCode," + | |
| 117 | + " a.stationRouteStationMark," + | |
| 118 | + " a.stationOutStationNmber," + | |
| 119 | + " a.stationRoutedirections," + | |
| 120 | + " a.stationRouteDistances," + | |
| 121 | + " a.stationRouteToTime," + | |
| 122 | + " a.staitonRouteFirstTime," + | |
| 123 | + " a.stationRouteEndTime," + | |
| 124 | + " a.stationRouteDescriptions," + | |
| 125 | + " a.stationRouteDestroy," + | |
| 126 | + " a.stationRouteVersions," + | |
| 127 | + " a.stationRouteCreateBy," + | |
| 128 | + " a.stationRouteCreateDate," + | |
| 129 | + " a.stationRouteUpdateBy," + | |
| 130 | + " a.stationRouteUpdateDate," + | |
| 131 | + " b.id AS stationId," + | |
| 132 | + " b.station_cod AS stationCode," + | |
| 133 | + " a.stationRouteName," + | |
| 134 | + " b.road_coding AS stationRoadCoding," + | |
| 135 | + " b.db_type AS stationDbType," + | |
| 136 | + " b.b_jwpoints AS stationJwpoints," + | |
| 137 | + " b.g_lonx AS stationGlonx," + | |
| 138 | + " b.g_laty AS stationGlaty," + | |
| 139 | + " b.x AS stationX," + | |
| 140 | + " b.y AS stationY," + | |
| 141 | + " ST_AsText(b.b_polygon_grid) as stationBPolyonGrid," + | |
| 142 | + " ST_AsText(b.g_polygon_grid) AS stationGPloyonGrid, " + | |
| 143 | + " b.destroy AS stationDestroy," + | |
| 144 | + " b.radius AS stationRadius," + | |
| 145 | + " b.shapes_type AS stationShapesType," + | |
| 146 | + " b.versions AS stationVersions," + | |
| 147 | + " b.descriptions AS sttationDescriptions," + | |
| 148 | + " b.create_by AS stationCreateBy," + | |
| 149 | + " b.create_date AS stationCreateDate," + | |
| 150 | + " b.update_by AS stationUpdateBy," + | |
| 151 | + " b.update_date AS stationUpdateDate," + | |
| 152 | + " a.stationRouteId,b.station_name as zdmc "+ | |
| 153 | + " FROM ( SELECT s.id AS stationRouteId," + | |
| 154 | + " s.line AS stationRouteLine," + | |
| 155 | + " s.station as stationRouteStation," + | |
| 156 | + " s.station_name AS stationRouteName," + | |
| 157 | + " s.station_route_code as stationRouteCode," + | |
| 158 | + " s.line_code AS stationRouteLIneCode," + | |
| 159 | + " s.station_mark AS stationRouteStationMark," + | |
| 160 | + " s.out_station_nmber AS stationOutStationNmber," + | |
| 161 | + " s.directions AS stationRoutedirections," + | |
| 162 | + " s.distances AS stationRouteDistances," + | |
| 163 | + " s.to_time AS stationRouteToTime," + | |
| 164 | + " s.first_time AS staitonRouteFirstTime," + | |
| 165 | + " s.end_time AS stationRouteEndTime," + | |
| 166 | + " s.descriptions AS stationRouteDescriptions," + | |
| 167 | + " s.destroy AS stationRouteDestroy," + | |
| 168 | + " s.versions AS stationRouteVersions," + | |
| 169 | + " s.create_by AS stationRouteCreateBy," + | |
| 170 | + " s.create_date AS stationRouteCreateDate," + | |
| 171 | + " s.update_by AS stationRouteUpdateBy," + | |
| 172 | + " s.update_date AS stationRouteUpdateDate FROM bsth_c_stationroute s WHERE s.station_route_code =(" + | |
| 173 | + "select MIN(station_route_code) as stationRouteCode from bsth_c_stationroute r WHERE " + | |
| 174 | + "r.line=?1 and r.directions =?2 and station_route_code > ?3 and r.destroy = 0 ) and s.line=?1 and s.directions = ?2 AND s.destroy = 0) a " + | |
| 175 | + " LEFT JOIN bsth_c_station b ON a.stationRouteStation = b.id", nativeQuery=true) | |
| 176 | + List<Object[]> findDownStationRoute(Integer id,Integer direction,Integer stationRouteCode); | |
| 177 | + | |
| 107 | 178 | /** |
| 108 | 179 | * @Description :TODO(站点中心点坐标查询) |
| 109 | 180 | * | ... | ... |
src/main/java/com/bsth/repository/oil/DlbRepository.java
| ... | ... | @@ -95,4 +95,8 @@ public interface DlbRepository extends BaseRepository<Dlb, Integer>{ |
| 95 | 95 | |
| 96 | 96 | @Query(value="SELECT * FROM bsth_c_dlb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3 and xlbm=?4",nativeQuery=true) |
| 97 | 97 | List<Dlb> queryListDlb(String rq,String nbbm,String jgh,String xlbm); |
| 98 | + | |
| 99 | + @Query(value="SELECT * FROM bsth_c_dlb where to_days(?1)=to_days(rq) and xlbm=?2",nativeQuery=true) | |
| 100 | + List<Dlb> queryDlbByRqXlbm(String rq, String xlbm); | |
| 101 | + | |
| 98 | 102 | } | ... | ... |
src/main/java/com/bsth/repository/oil/YlbRepository.java
| ... | ... | @@ -49,13 +49,13 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ |
| 49 | 49 | @Query(value="select * from bsth_c_ylb where to_days(?1) -to_days(rq) <30 " |
| 50 | 50 | + " and rq< ?1 and ssgsdm like %?2%" |
| 51 | 51 | + " and fgsdm like %?3% and xlbm like %?4% and nbbm like %?5% " |
| 52 | - + " order by nbbm , rq desc,jcsx desc",nativeQuery=true) | |
| 52 | + + " order by nbbm , rq desc,jcsx desc,lp desc",nativeQuery=true) | |
| 53 | 53 | List<Ylb> listByRqJcsx(String rq,String gsbm,String fgsbm,String xlbm,String nbbm); |
| 54 | 54 | |
| 55 | 55 | @Query(value="select * from bsth_c_ylb where rq>=?1 " |
| 56 | 56 | + " and rq<= ?2 and ssgsdm =?3" |
| 57 | 57 | + " and fgsdm =?4 and xlbm like %?5% " |
| 58 | - + " order by nbbm , rq desc,jcsx desc",nativeQuery=true) | |
| 58 | + + " order by nbbm , rq desc,jcsx desc,lp desc",nativeQuery=true) | |
| 59 | 59 | List<Ylb> listByMonthJcsx(String rq,String rq2,String gsbm,String fgsbm,String xlbm); |
| 60 | 60 | |
| 61 | 61 | /** |
| ... | ... | @@ -81,6 +81,9 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ |
| 81 | 81 | |
| 82 | 82 | @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3 and xlbm=?4",nativeQuery=true) |
| 83 | 83 | List<Ylb> queryListYlb(String rq,String nbbm,String jgh,String xlbm); |
| 84 | + | |
| 85 | + @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and xlbm=?2",nativeQuery=true) | |
| 86 | + List<Ylb> queryYlbByRqXlbm(String rq,String xlbm); | |
| 84 | 87 | |
| 85 | 88 | @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3 and xlbm=?4 order by ?5 asc",nativeQuery=true) |
| 86 | 89 | List<Ylb> checkYlb(String rq,String nbbm,String jgh,String xlbm,String px); | ... | ... |
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
| ... | ... | @@ -58,6 +58,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI |
| 58 | 58 | + " lp_name,xl_name,cl_zbh",nativeQuery=true) |
| 59 | 59 | List<Object[]> historyMessageCount(String line,String date,String code); |
| 60 | 60 | |
| 61 | + @Query(value="SELECT r.xl_name,r.cl_zbh,d.sender,d.timestamp,d.txt_content " | |
| 62 | + + " FROM bsth_c_s_sp_info_real r RIGHT JOIN bsth_v_directive_60 d " | |
| 63 | + + " ON r.id = d.sch WHERE d.is_dispatch = 1 AND r.xl_bm like %?1% AND " | |
| 64 | + + " r.schedule_date_str = ?2 and r.cl_zbh =?3 ",nativeQuery=true) | |
| 65 | + List<Object[]> historyMessageList(String line,String date,String code); | |
| 66 | + | |
| 61 | 67 | @Query(value = "select max(id) from ScheduleRealInfo") |
| 62 | 68 | Long getMaxId(); |
| 63 | 69 | |
| ... | ... | @@ -187,10 +193,10 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI |
| 187 | 193 | List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2); |
| 188 | 194 | |
| 189 | 195 | |
| 190 | - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,s.lpName as lpName,min(s.fcsj) as fcsj,min(s.realExecDate) as realExecDate ) from ScheduleRealInfo s where s.xlBm like %?1% and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,lpName ORDER BY clZbh,realExecDate,fcsj") | |
| 196 | + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,s.lpName as lpName,min(s.fcsj) as fcsj,min(s.realExecDate) as realExecDate,s.jName as jName ) from ScheduleRealInfo s where s.xlBm like %?1% and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,lpName,jName ORDER BY clZbh,realExecDate,fcsj") | |
| 191 | 197 | List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm,String nbbm); |
| 192 | 198 | |
| 193 | - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,s.lpName as lpName,min(s.fcsj) as fcsj,min(s.realExecDate) as realExecDate ) from ScheduleRealInfo s where s.xlBm =?1 and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,lpName ORDER BY clZbh,realExecDate,fcsj") | |
| 199 | + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,s.lpName as lpName,min(s.fcsj) as fcsj,min(s.realExecDate) as realExecDate,s.jName as jName ) from ScheduleRealInfo s where s.xlBm =?1 and s.scheduleDateStr = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,lpName,jName ORDER BY clZbh,realExecDate,fcsj") | |
| 194 | 200 | List<Map<String,Object>> yesterdayDataList_eq(String line,String date,String gsbm,String fgsbm,String nbbm); |
| 195 | 201 | |
| 196 | 202 | @Query(value="select s from ScheduleRealInfo s where s.scheduleDateStr = ?1 ORDER BY xlBm,lpName,clZbh,xlDir") | ... | ... |
src/main/java/com/bsth/repository/schedule/TTInfoRepository.java
| ... | ... | @@ -11,7 +11,9 @@ import org.springframework.data.jpa.repository.EntityGraph; |
| 11 | 11 | import org.springframework.data.jpa.repository.Query; |
| 12 | 12 | import org.springframework.stereotype.Repository; |
| 13 | 13 | |
| 14 | +import javax.persistence.Tuple; | |
| 14 | 15 | import java.util.List; |
| 16 | +import java.util.Map; | |
| 15 | 17 | |
| 16 | 18 | /** |
| 17 | 19 | * Created by xu on 16/5/12. |
| ... | ... | @@ -31,4 +33,19 @@ public interface TTInfoRepository extends BaseRepository<TTInfo, Long> { |
| 31 | 33 | |
| 32 | 34 | @Query("select t from TTInfo t where t.xl = ?1 and t.isCancel = false") |
| 33 | 35 | List<TTInfo> findInCanceledByXl(Line xl); |
| 36 | + | |
| 37 | + @Query(value = "select new map(lv.name as name, lv.startDate as sd, " + | |
| 38 | + "lv.status as status, lv.versions as version) " + | |
| 39 | + "from LineVersions lv where lv.line.id = ?1 ") | |
| 40 | + List<Map<String, Object>> findLineVersionDescs(Integer lineId); | |
| 41 | + | |
| 42 | + @Query(value = "select new map(lv.name as name, lv.startDate as sd, " + | |
| 43 | + "lv.status as status, lv.versions as version) " + | |
| 44 | + "from LineVersions lv where lv.line.id = ?1 and lv.versions = ?2 ") | |
| 45 | + List<Map<String, Object>> findLineVersionDescs2(Integer lineId, Integer version); | |
| 46 | + | |
| 47 | + @Query(value = "select new map(lv.name as name, lv.versions as version) " + | |
| 48 | + "from LineVersions lv where lv.line.id = ?1 and lv.status = ?2 ") | |
| 49 | + List<Map<String, Object>> findLineVersionDescs3(Integer lineId, Integer status); | |
| 50 | + | |
| 34 | 51 | } | ... | ... |
src/main/java/com/bsth/security/WebSecurityConfig.java
| ... | ... | @@ -36,7 +36,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { |
| 36 | 36 | public void configure(WebSecurity web) throws Exception { |
| 37 | 37 | // 白名单 |
| 38 | 38 | web.ignoring().antMatchers(Constants.LOGIN_PAGE, Constants.LOGIN, Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.CAPTCHA, |
| 39 | - Constants.SERVICE_INTERFACE, Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.UP_RFID_URL); | |
| 39 | + Constants.SERVICE_INTERFACE, Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.UP_RFID_URL,Constants.STATION_AND_SECTION_COUNT); | |
| 40 | 40 | } |
| 41 | 41 | |
| 42 | 42 | @Override | ... | ... |
src/main/java/com/bsth/security/filter/LoginInterceptor.java
| ... | ... | @@ -33,7 +33,7 @@ public class LoginInterceptor implements Filter { |
| 33 | 33 | * 相比于 BaseFilter,此处对线调GPS请求进行了拦截验证 |
| 34 | 34 | */ |
| 35 | 35 | private String[] whiteListURLs = { Constants.LOGIN_PAGE,Constants.CAPTCHA, Constants.SERVICE_INTERFACE, |
| 36 | - Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.UP_RFID_URL }; | |
| 36 | + Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.UP_RFID_URL,Constants.STATION_AND_SECTION_COUNT }; | |
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | @Override | ... | ... |
src/main/java/com/bsth/service/BusIntervalService.java
| ... | ... | @@ -19,4 +19,6 @@ public interface BusIntervalService { |
| 19 | 19 | List<Map<String, Object>> lbStatuAnaly(Map<String, Object> map); |
| 20 | 20 | |
| 21 | 21 | List<Map<String, Object>> correctStatis(Map<String, Object> map); |
| 22 | + | |
| 23 | + Map<String, Object> exportWaybillMore(Map<String, Object> map); | |
| 22 | 24 | } | ... | ... |
src/main/java/com/bsth/service/LineService.java
| 1 | 1 | package com.bsth.service; |
| 2 | 2 | |
| 3 | -import java.util.Map; | |
| 4 | - | |
| 5 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 6 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 7 | - | |
| 8 | 3 | import com.bsth.entity.Line; |
| 9 | 4 | |
| 5 | +import java.util.Map; | |
| 6 | + | |
| 10 | 7 | /** |
| 11 | 8 | * |
| 12 | 9 | * @Interface: LineService(线路service业务层实现接口) |
| ... | ... | @@ -38,4 +35,6 @@ public interface LineService extends BaseService<Line, Integer> { |
| 38 | 35 | String lineCodeVerification(String lineCode); |
| 39 | 36 | |
| 40 | 37 | Map<String, Object> update(Line l); |
| 38 | + | |
| 39 | + Map<String,Object> remove(Integer id); | |
| 41 | 40 | } | ... | ... |
src/main/java/com/bsth/service/SectionService.java
| ... | ... | @@ -37,4 +37,6 @@ public interface SectionService extends BaseService<Section, Integer> { |
| 37 | 37 | Map<String, Object> sectionCacheUpdate(Map<String, Object> map); |
| 38 | 38 | |
| 39 | 39 | Map<String, Object> sectionCutSaveLineLS(Map<String, Object> map); |
| 40 | + | |
| 41 | + Map<String,Object> doubleName(Map<String, Object> map); | |
| 40 | 42 | } | ... | ... |
src/main/java/com/bsth/service/StationRouteService.java
| ... | ... | @@ -72,9 +72,18 @@ public interface StationRouteService extends BaseService<StationRoute, Integer> |
| 72 | 72 | * @return List<Map<String, Object>> |
| 73 | 73 | */ |
| 74 | 74 | List<Map<String, Object>> findUpStationRouteCode(Map<String, Object> map); |
| 75 | - | |
| 75 | + | |
| 76 | 76 | List<Map<String, Object>> findCacheUpStationRouteCode(Map<String, Object> map); |
| 77 | - | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * @Description :TODO(查询下一个站点) | |
| 80 | + * | |
| 81 | + * @param map <站点路由id; direction:方向;stationRouteCode:站点编码> | |
| 82 | + * | |
| 83 | + * @return List<Map<String, Object>> | |
| 84 | + */ | |
| 85 | + List<Map<String, Object>> findDownStationRoute(Map<String, Object> map); | |
| 86 | + | |
| 78 | 87 | /** |
| 79 | 88 | * @Description :TODO(查询线路某方向下所有站点的中心百度坐标) |
| 80 | 89 | * | ... | ... |
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
| ... | ... | @@ -658,7 +658,7 @@ public class FormsServiceImpl implements FormsService { |
| 658 | 658 | List<Singledata> list_=new ArrayList<Singledata>(); |
| 659 | 659 | if(tjtype.equals("jsy")){ |
| 660 | 660 | //油统计 |
| 661 | - String sql="select r.j_gh, r.xl_bm,r.cl_zbh" | |
| 661 | + String sql="select r.j_gh, r.xl_bm,r.cl_zbh,r.j_name" | |
| 662 | 662 | + " from bsth_c_s_sp_info_real r where " |
| 663 | 663 | + " r.schedule_date_str = '"+startDate+"'"; |
| 664 | 664 | if(xlbm.equals("")){ |
| ... | ... | @@ -667,13 +667,14 @@ public class FormsServiceImpl implements FormsService { |
| 667 | 667 | }else{ |
| 668 | 668 | sql += " and r.xl_bm = '"+xlbm+"'"; |
| 669 | 669 | } |
| 670 | - sql += " group by r.j_gh,r.xl_bm,r.cl_zbh order by r.xl_bm,r.cl_zbh"; | |
| 670 | + sql += " group by r.j_gh,r.xl_bm,r.cl_zbh,r.j_name order by r.xl_bm,r.cl_zbh"; | |
| 671 | 671 | list = jdbcTemplate.query(sql, new RowMapper<Singledata>() { |
| 672 | 672 | @Override |
| 673 | 673 | public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException { |
| 674 | 674 | Singledata sin = new Singledata(); |
| 675 | 675 | sin.setxL(arg0.getString("xl_bm")); |
| 676 | 676 | sin.setJsy(arg0.getString("j_gh")); |
| 677 | + sin.setjName(arg0.getString("j_name")); | |
| 677 | 678 | sin.setClzbh(arg0.getString("cl_zbh")); |
| 678 | 679 | return sin; |
| 679 | 680 | } |
| ... | ... | @@ -794,7 +795,7 @@ public class FormsServiceImpl implements FormsService { |
| 794 | 795 | sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); |
| 795 | 796 | sin.setXlmc(BasicData.lineCode2NameMap.get(line)); |
| 796 | 797 | sin.setrQ(startDate); |
| 797 | - sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | |
| 798 | +// sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | |
| 798 | 799 | sin.setSgh(""); |
| 799 | 800 | sin.setsName(""); |
| 800 | 801 | sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); |
| ... | ... | @@ -868,7 +869,7 @@ public class FormsServiceImpl implements FormsService { |
| 868 | 869 | |
| 869 | 870 | sin.setEmptMileage(String.valueOf(zksgl)); |
| 870 | 871 | sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); |
| 871 | - sin.setxL(BasicData.lineCode2NameMap.get(line)); | |
| 872 | + sin.setXlmc(BasicData.lineCode2NameMap.get(line)); | |
| 872 | 873 | sin.setClzbh(clzbh); |
| 873 | 874 | sin.setJsy(""); |
| 874 | 875 | sin.setjName(""); |
| ... | ... | @@ -876,8 +877,9 @@ public class FormsServiceImpl implements FormsService { |
| 876 | 877 | sin.setHyl(""); |
| 877 | 878 | sin.setJzl(""); |
| 878 | 879 | sin.setUnyyyl(""); |
| 880 | + list_.add(sin); | |
| 879 | 881 | } |
| 880 | - Collections.sort(list,new SingledataByXlbm()); | |
| 882 | + Collections.sort(list_,new SingledataByXlbm()); | |
| 881 | 883 | } |
| 882 | 884 | return list_; |
| 883 | 885 | } |
| ... | ... | @@ -1380,7 +1382,11 @@ public class FormsServiceImpl implements FormsService { |
| 1380 | 1382 | sin.setClzbh(clzbh); |
| 1381 | 1383 | sin.setJsy(jsy); |
| 1382 | 1384 | sin.setrQ(startDate); |
| 1383 | - sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | |
| 1385 | + if(newList.size()>0){ | |
| 1386 | + sin.setjName(newList.get(0).getjName()); | |
| 1387 | + }else{ | |
| 1388 | + sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | |
| 1389 | + } | |
| 1384 | 1390 | sin.setSgh(""); |
| 1385 | 1391 | sin.setsName(""); |
| 1386 | 1392 | sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); |
| ... | ... | @@ -1458,7 +1464,11 @@ public class FormsServiceImpl implements FormsService { |
| 1458 | 1464 | sin.setClzbh(clzbh); |
| 1459 | 1465 | sin.setJsy(jsy); |
| 1460 | 1466 | sin.setrQ(startDate); |
| 1461 | - sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | |
| 1467 | + if(newList.size()>0){ | |
| 1468 | + sin.setjName(newList.get(0).getjName()); | |
| 1469 | + }else{ | |
| 1470 | + sin.setjName(BasicData.allPerson.get(gsdm+"-"+jsy)); | |
| 1471 | + } | |
| 1462 | 1472 | sin.setSgh(""); |
| 1463 | 1473 | sin.setsName(""); |
| 1464 | 1474 | sin.setgS(BasicData.businessFgsCodeNameMap.get(fgsdm+"_"+gsdm)); |
| ... | ... | @@ -1539,7 +1549,7 @@ public class FormsServiceImpl implements FormsService { |
| 1539 | 1549 | |
| 1540 | 1550 | sin.setEmptMileage(String.valueOf(zksgl)); |
| 1541 | 1551 | sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); |
| 1542 | - sin.setxL(BasicData.lineCode2NameMap.get(line)); | |
| 1552 | + sin.setXlmc(BasicData.lineCode2NameMap.get(line)); | |
| 1543 | 1553 | sin.setClzbh(clzbh); |
| 1544 | 1554 | sin.setJsy(""); |
| 1545 | 1555 | sin.setjName(""); |
| ... | ... | @@ -1550,9 +1560,7 @@ public class FormsServiceImpl implements FormsService { |
| 1550 | 1560 | } |
| 1551 | 1561 | Collections.sort(list,new SingledataByXlbm()); |
| 1552 | 1562 | } |
| 1553 | - | |
| 1554 | 1563 | return list; |
| 1555 | - | |
| 1556 | 1564 | } |
| 1557 | 1565 | |
| 1558 | 1566 | // 运营服务阶段报表 | ... | ... |
src/main/java/com/bsth/service/geo_data/GeoDataService.java
| 1 | -package com.bsth.service.geo_data; | |
| 2 | - | |
| 3 | -import com.bsth.entity.geo_data.GeoStation; | |
| 4 | - | |
| 5 | -import java.util.Map; | |
| 6 | - | |
| 7 | -/** | |
| 8 | - * Created by panzhao on 2017/12/7. | |
| 9 | - */ | |
| 10 | -public interface GeoDataService { | |
| 11 | - | |
| 12 | - | |
| 13 | - Map<String, Object> findGeoStations(String lineCode); | |
| 14 | - | |
| 15 | - | |
| 16 | - Map<String, Object> findGeoRoad(String lineCode); | |
| 17 | - | |
| 18 | - Map<String, Object> updateBufferInfo(GeoStation station); | |
| 19 | - | |
| 20 | - Map<String, Object> updateStationName(Map<String, Object> map); | |
| 21 | -} | |
| 1 | +package com.bsth.service.geo_data; | |
| 2 | + | |
| 3 | +import com.bsth.entity.geo_data.GeoRoad; | |
| 4 | +import com.bsth.entity.geo_data.GeoStation; | |
| 5 | + | |
| 6 | +import java.util.Map; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by panzhao on 2017/12/7. | |
| 10 | + */ | |
| 11 | +public interface GeoDataService { | |
| 12 | + | |
| 13 | + | |
| 14 | + Map<String, Object> findGeoStations(String lineCode, Integer version); | |
| 15 | + | |
| 16 | + | |
| 17 | + Map<String, Object> findGeoRoad(String lineCode,Integer version); | |
| 18 | + | |
| 19 | + Map<String, Object> updateBufferInfo(GeoStation station); | |
| 20 | + | |
| 21 | + Map<String, Object> updateStationName(Map<String, Object> map); | |
| 22 | + | |
| 23 | + Map<String,Object> addNewStationRoute(String lineCode, int upDown,int versions, String stationName, Float lat, Float lng, int prevRouteId); | |
| 24 | + | |
| 25 | + Map<String,Object> destroyStation(GeoStation station); | |
| 26 | + | |
| 27 | + Map<String,Object> updateRoadInfo(GeoRoad road); | |
| 28 | + | |
| 29 | + Map<String,Object> destroyRoad(GeoRoad road); | |
| 30 | + | |
| 31 | + Map<String,Object> addNewRoadRoute(String lineCode, int upDown, int versions, String sectionName,String crosesRoad, String coords, int prevRouteId); | |
| 32 | + | |
| 33 | + Map<String,Object> findVersionInfo(String lineCode); | |
| 34 | + | |
| 35 | + Map<String,Object> addNewLineVersion(Map<String, Object> map); | |
| 36 | + | |
| 37 | + Map<String,Object> deleteLineVersion(String lineCode, int version); | |
| 38 | + | |
| 39 | + Map<String,Object> findFutureVersion(String lineCode); | |
| 40 | + | |
| 41 | + Map<String,Object> addEnableInfo(String lineCode, int version, String enableTime); | |
| 42 | +} | ... | ... |