Commit 9f94a361f204b5e24ecd2a1153e2b1fbcde4c3b4
1.lggj合并浦东公交分支,更新部分为线路信息编辑相关
Showing
29 changed files
with
2168 additions
and
2336 deletions
Too many changes to show.
To preserve performance only 29 of 302 files are displayed.
pom.xml
| ... | ... | @@ -34,8 +34,6 @@ |
| 34 | 34 | <groupId>org.springframework.boot</groupId> |
| 35 | 35 | <artifactId>spring-boot-starter-security</artifactId> |
| 36 | 36 | </dependency> |
| 37 | - <!-- <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> | |
| 38 | - </dependency> --> | |
| 39 | 37 | <dependency> |
| 40 | 38 | <groupId>org.springframework.boot</groupId> |
| 41 | 39 | <artifactId>spring-boot-starter-data-jpa</artifactId> |
| ... | ... | @@ -59,6 +57,10 @@ |
| 59 | 57 | <optional>true</optional> |
| 60 | 58 | </dependency> |
| 61 | 59 | <dependency> |
| 60 | + <groupId>org.springframework.kafka</groupId> | |
| 61 | + <artifactId>spring-kafka</artifactId> | |
| 62 | + </dependency> | |
| 63 | + <dependency> | |
| 62 | 64 | <groupId>mysql</groupId> |
| 63 | 65 | <artifactId>mysql-connector-java</artifactId> |
| 64 | 66 | <version>5.1.38</version> |
| ... | ... | @@ -405,6 +407,11 @@ |
| 405 | 407 | <artifactId>jts-core</artifactId> |
| 406 | 408 | <version>1.16.1</version> |
| 407 | 409 | </dependency> |
| 410 | + | |
| 411 | + <dependency> | |
| 412 | + <groupId>org.hibernate</groupId> | |
| 413 | + <artifactId>hibernate-spatial</artifactId> | |
| 414 | + </dependency> | |
| 408 | 415 | </dependencies> |
| 409 | 416 | |
| 410 | 417 | <dependencyManagement> | ... | ... |
src/main/java/com/bsth/Application.java
| 1 | 1 | package com.bsth; |
| 2 | 2 | |
| 3 | +import com.fasterxml.jackson.annotation.JsonInclude; | |
| 3 | 4 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 4 | 5 | import com.fasterxml.jackson.databind.SerializationFeature; |
| 5 | 6 | import org.springframework.boot.SpringApplication; |
| ... | ... | @@ -7,12 +8,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; |
| 7 | 8 | import org.springframework.boot.builder.SpringApplicationBuilder; |
| 8 | 9 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; |
| 9 | 10 | import org.springframework.context.annotation.Bean; |
| 11 | +import org.springframework.context.annotation.EnableAspectJAutoProxy; | |
| 10 | 12 | import org.springframework.context.annotation.Primary; |
| 11 | 13 | import org.springframework.transaction.annotation.EnableTransactionManagement; |
| 12 | 14 | |
| 13 | 15 | import java.util.concurrent.Executors; |
| 14 | 16 | import java.util.concurrent.ScheduledExecutorService; |
| 15 | 17 | |
| 18 | +@EnableAspectJAutoProxy | |
| 16 | 19 | @EnableTransactionManagement |
| 17 | 20 | @SpringBootApplication |
| 18 | 21 | public class Application extends SpringBootServletInitializer { |
| ... | ... | @@ -27,10 +30,11 @@ public class Application extends SpringBootServletInitializer { |
| 27 | 30 | @Bean |
| 28 | 31 | @Primary |
| 29 | 32 | public ObjectMapper objectMapper() { |
| 30 | - ObjectMapper objectMapper = new ObjectMapper(); | |
| 31 | - objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); | |
| 33 | + ObjectMapper mapper = new ObjectMapper(); | |
| 34 | + mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); | |
| 35 | + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); | |
| 32 | 36 | |
| 33 | - return objectMapper; | |
| 37 | + return mapper; | |
| 34 | 38 | } |
| 35 | 39 | |
| 36 | 40 | public static void main(String[] args) throws Exception { | ... | ... |
src/main/java/com/bsth/annotation/BusinessDescription.java
0 → 100644
| 1 | +package com.bsth.annotation; | |
| 2 | + | |
| 3 | +import java.lang.annotation.ElementType; | |
| 4 | +import java.lang.annotation.Retention; | |
| 5 | +import java.lang.annotation.RetentionPolicy; | |
| 6 | +import java.lang.annotation.Target; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * @author Hill | |
| 10 | + */ | |
| 11 | +@Retention(RetentionPolicy.RUNTIME) | |
| 12 | +@Target(ElementType.METHOD) | |
| 13 | +public @interface BusinessDescription { | |
| 14 | + | |
| 15 | + /** | |
| 16 | + * 业务描述内容 | |
| 17 | + * @return | |
| 18 | + */ | |
| 19 | + String value(); | |
| 20 | +} | ... | ... |
src/main/java/com/bsth/common/SystemParamKeys.java
0 → 100644
src/main/java/com/bsth/controller/BaseController.java
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import com.bsth.service.BaseService; | |
| 4 | -import com.google.common.base.Splitter; | |
| 5 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 6 | -import org.springframework.data.domain.Page; | |
| 7 | -import org.springframework.data.domain.PageRequest; | |
| 8 | -import org.springframework.data.domain.Sort; | |
| 9 | -import org.springframework.data.domain.Sort.Direction; | |
| 10 | -import org.springframework.web.bind.annotation.PathVariable; | |
| 11 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 12 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 13 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 14 | - | |
| 15 | -import java.io.Serializable; | |
| 16 | -import java.util.ArrayList; | |
| 17 | -import java.util.List; | |
| 18 | -import java.util.Map; | |
| 19 | - | |
| 20 | -/** | |
| 21 | - * @param <T> | |
| 22 | - * @param <ID> 主键类型 | |
| 23 | - * @author PanZhao | |
| 24 | - * @ClassName: BaseController | |
| 25 | - * @Description: TODO(基础的Controller实现) | |
| 26 | - * @date 2016年3月17日 下午12:44:06 | |
| 27 | - */ | |
| 28 | -public class BaseController<T, ID extends Serializable> { | |
| 29 | - | |
| 30 | - @Autowired | |
| 31 | - protected BaseService<T, ID> baseService; | |
| 32 | - | |
| 33 | - /** | |
| 34 | - * @param @param map 查询条件 | |
| 35 | - * @param @param page 页码 | |
| 36 | - * @param @param size 每页显示数量 | |
| 37 | - * @throws | |
| 38 | - * @Title: list | |
| 39 | - * @Description: TODO(多条件分页查询) | |
| 40 | - */ | |
| 41 | - @RequestMapping(method = RequestMethod.GET) | |
| 42 | - public Page<T> list(@RequestParam Map<String, Object> map, | |
| 43 | - @RequestParam(defaultValue = "0") int page, | |
| 44 | - @RequestParam(defaultValue = "10") int size, | |
| 45 | - @RequestParam(defaultValue = "id") String order, | |
| 46 | - @RequestParam(defaultValue = "DESC") String direction) { | |
| 47 | - | |
| 48 | - // 允许多个字段排序,order可以写单个字段,也可以写多个字段 | |
| 49 | - // 多个字段格式:{col1},{col2},{col3},....,{coln} | |
| 50 | - List<String> order_columns = Splitter.on(",").trimResults().splitToList(order); | |
| 51 | - // 多字段排序:DESC,ASC... | |
| 52 | - List<String> order_dirs = Splitter.on(",").trimResults().splitToList(direction); | |
| 53 | - | |
| 54 | - if (order_dirs.size() == 1) { // 所有字段采用一种排序 | |
| 55 | - if (null != order_dirs.get(0) && order_dirs.get(0).equals("ASC")) { | |
| 56 | - return baseService.list(map, new PageRequest(page, size, new Sort(Direction.ASC, order_columns))); | |
| 57 | - } else { | |
| 58 | - return baseService.list(map, new PageRequest(page, size, new Sort(Direction.DESC, order_columns))); | |
| 59 | - } | |
| 60 | - } else if (order_columns.size() == order_dirs.size()) { | |
| 61 | - List<Sort.Order> orderList = new ArrayList<>(); | |
| 62 | - for (int i = 0; i < order_columns.size(); i++) { | |
| 63 | - if (null != order_dirs.get(i) && order_dirs.get(i).equals("ASC")) { | |
| 64 | - orderList.add(new Sort.Order(Direction.ASC, order_columns.get(i))); | |
| 65 | - } else { | |
| 66 | - orderList.add(new Sort.Order(Direction.DESC, order_columns.get(i))); | |
| 67 | - } | |
| 68 | - } | |
| 69 | - return baseService.list(map, new PageRequest(page, size, new Sort(orderList))); | |
| 70 | - } else { | |
| 71 | - throw new RuntimeException("多字段排序参数格式问题,排序顺序和字段数不一致"); | |
| 72 | - } | |
| 73 | - } | |
| 74 | - | |
| 75 | - /** | |
| 76 | - * @param @param map | |
| 77 | - * @throws | |
| 78 | - * @Title: list | |
| 79 | - * @Description: TODO(多条件查询) | |
| 80 | - */ | |
| 81 | - @RequestMapping(value = "/all", method = RequestMethod.GET) | |
| 82 | - public Iterable<T> list(@RequestParam Map<String, Object> map) { | |
| 83 | - return baseService.list(map); | |
| 84 | - } | |
| 85 | - | |
| 86 | - /** | |
| 87 | - * @param @param t | |
| 88 | - * @param @return 设定文件 | |
| 89 | - * @return Map<String,Object> {status: 1(成功),-1(失败)} | |
| 90 | - * @throws | |
| 91 | - * @Title: save | |
| 92 | - * @Description: TODO(持久化对象) | |
| 93 | - */ | |
| 94 | - @RequestMapping(method = RequestMethod.POST) | |
| 95 | - public Map<String, Object> save(T t) { | |
| 96 | - return baseService.save(t); | |
| 97 | - } | |
| 98 | - | |
| 99 | - /** | |
| 100 | - * @param @param id | |
| 101 | - * @throws | |
| 102 | - * @Title: findById | |
| 103 | - * @Description: TODO(根据主键获取单个对象) | |
| 104 | - */ | |
| 105 | - @RequestMapping(value = "/{id}", method = RequestMethod.GET) | |
| 106 | - public T findById(@PathVariable("id") ID id) { | |
| 107 | - return baseService.findById(id); | |
| 108 | - } | |
| 109 | - | |
| 110 | - /** | |
| 111 | - * @param @param id | |
| 112 | - * @throws | |
| 113 | - * @Title: delete | |
| 114 | - * @Description: TODO(根据主键删除对象) | |
| 115 | - */ | |
| 116 | - @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) | |
| 117 | - public Map<String, Object> delete(@PathVariable("id") ID id) { | |
| 118 | - return baseService.delete(id); | |
| 119 | - } | |
| 120 | - | |
| 121 | -} | |
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import com.bsth.service.BaseService; | |
| 4 | +import com.google.common.base.Splitter; | |
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 6 | +import org.springframework.data.domain.Page; | |
| 7 | +import org.springframework.data.domain.PageRequest; | |
| 8 | +import org.springframework.data.domain.Sort; | |
| 9 | +import org.springframework.data.domain.Sort.Direction; | |
| 10 | +import org.springframework.web.bind.annotation.PathVariable; | |
| 11 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 12 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 13 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 14 | + | |
| 15 | +import java.io.Serializable; | |
| 16 | +import java.util.ArrayList; | |
| 17 | +import java.util.List; | |
| 18 | +import java.util.Map; | |
| 19 | + | |
| 20 | +/** | |
| 21 | + * @param <T> | |
| 22 | + * @param <ID> 主键类型 | |
| 23 | + * @author PanZhao | |
| 24 | + * @ClassName: BaseController | |
| 25 | + * @Description: TODO(基础的Controller实现) | |
| 26 | + * @date 2016年3月17日 下午12:44:06 | |
| 27 | + */ | |
| 28 | +public class BaseController<T, ID extends Serializable> { | |
| 29 | + | |
| 30 | + @Autowired | |
| 31 | + protected BaseService<T, ID> baseService; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * @param @param map 查询条件 | |
| 35 | + * @param @param page 页码 | |
| 36 | + * @param @param size 每页显示数量 | |
| 37 | + * @throws | |
| 38 | + * @Title: list | |
| 39 | + * @Description: TODO(多条件分页查询) | |
| 40 | + */ | |
| 41 | + @RequestMapping(method = RequestMethod.GET) | |
| 42 | + public Page<T> list(@RequestParam Map<String, Object> map, | |
| 43 | + @RequestParam(defaultValue = "0") int page, | |
| 44 | + @RequestParam(defaultValue = "10") int size, | |
| 45 | + @RequestParam(defaultValue = "id") String order, | |
| 46 | + @RequestParam(defaultValue = "DESC") String direction) { | |
| 47 | + | |
| 48 | + // 允许多个字段排序,order可以写单个字段,也可以写多个字段 | |
| 49 | + // 多个字段格式:{col1},{col2},{col3},....,{coln} | |
| 50 | + List<String> order_columns = Splitter.on(",").trimResults().splitToList(order); | |
| 51 | + // 多字段排序:DESC,ASC... | |
| 52 | + List<String> order_dirs = Splitter.on(",").trimResults().splitToList(direction); | |
| 53 | + | |
| 54 | + if (order_dirs.size() == 1) { // 所有字段采用一种排序 | |
| 55 | + if (null != order_dirs.get(0) && order_dirs.get(0).equals("ASC")) { | |
| 56 | + return baseService.list(map, new PageRequest(page, size, new Sort(Direction.ASC, order_columns))); | |
| 57 | + } else { | |
| 58 | + return baseService.list(map, new PageRequest(page, size, new Sort(Direction.DESC, order_columns))); | |
| 59 | + } | |
| 60 | + } else if (order_columns.size() == order_dirs.size()) { | |
| 61 | + List<Sort.Order> orderList = new ArrayList<>(); | |
| 62 | + for (int i = 0; i < order_columns.size(); i++) { | |
| 63 | + if (null != order_dirs.get(i) && order_dirs.get(i).equals("ASC")) { | |
| 64 | + orderList.add(new Sort.Order(Direction.ASC, order_columns.get(i))); | |
| 65 | + } else { | |
| 66 | + orderList.add(new Sort.Order(Direction.DESC, order_columns.get(i))); | |
| 67 | + } | |
| 68 | + } | |
| 69 | + return baseService.list(map, new PageRequest(page, size, new Sort(orderList))); | |
| 70 | + } else { | |
| 71 | + throw new RuntimeException("多字段排序参数格式问题,排序顺序和字段数不一致"); | |
| 72 | + } | |
| 73 | + } | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * @param @param map | |
| 77 | + * @throws | |
| 78 | + * @Title: list | |
| 79 | + * @Description: TODO(多条件查询) | |
| 80 | + */ | |
| 81 | + @RequestMapping(value = "/all", method = RequestMethod.GET) | |
| 82 | + public Iterable<T> list(@RequestParam Map<String, Object> map) { | |
| 83 | + return baseService.list(map); | |
| 84 | + } | |
| 85 | + | |
| 86 | + /** | |
| 87 | + * @param @param map | |
| 88 | + * @throws | |
| 89 | + * @Title: list | |
| 90 | + * @Description: TODO(多条件查询) | |
| 91 | + */ | |
| 92 | + @RequestMapping(value = "/findAll", method = RequestMethod.GET) | |
| 93 | + public List<T> findAll(@RequestParam Map<String, Object> map, | |
| 94 | + @RequestParam(defaultValue = "id") String order, | |
| 95 | + @RequestParam(defaultValue = "DESC") String direction) { | |
| 96 | + String[] columns = order.split(","), directions = direction.split(","); | |
| 97 | + if (columns.length != directions.length) { | |
| 98 | + throw new IllegalArgumentException("不合法的排序参数"); | |
| 99 | + } | |
| 100 | + | |
| 101 | + List<Sort.Order> orders = new ArrayList<>(); | |
| 102 | + for (int i = 0;i < columns.length;i++) { | |
| 103 | + String column = columns[i], direction1 = directions[i]; | |
| 104 | + if ("DESC".equals(direction1)) { | |
| 105 | + orders.add(Sort.Order.desc(column)); | |
| 106 | + } else if ("ASC".equals(direction1)) { | |
| 107 | + orders.add(Sort.Order.asc(column)); | |
| 108 | + } else { | |
| 109 | + throw new IllegalArgumentException("不合法的排序参数"); | |
| 110 | + } | |
| 111 | + } | |
| 112 | + | |
| 113 | + return baseService.findAll(map, Sort.by(orders)); | |
| 114 | + } | |
| 115 | + | |
| 116 | + /** | |
| 117 | + * @param @param t | |
| 118 | + * @param @return 设定文件 | |
| 119 | + * @return Map<String,Object> {status: 1(成功),-1(失败)} | |
| 120 | + * @throws | |
| 121 | + * @Title: save | |
| 122 | + * @Description: TODO(持久化对象) | |
| 123 | + */ | |
| 124 | + @RequestMapping(method = RequestMethod.POST) | |
| 125 | + public Map<String, Object> save(T t) { | |
| 126 | + return baseService.save(t); | |
| 127 | + } | |
| 128 | + | |
| 129 | + /** | |
| 130 | + * @param @param id | |
| 131 | + * @throws | |
| 132 | + * @Title: findById | |
| 133 | + * @Description: TODO(根据主键获取单个对象) | |
| 134 | + */ | |
| 135 | + @RequestMapping(value = "/{id}", method = RequestMethod.GET) | |
| 136 | + public T findById(@PathVariable("id") ID id) { | |
| 137 | + return baseService.findById(id); | |
| 138 | + } | |
| 139 | + | |
| 140 | + /** | |
| 141 | + * @param @param id | |
| 142 | + * @throws | |
| 143 | + * @Title: delete | |
| 144 | + * @Description: TODO(根据主键删除对象) | |
| 145 | + */ | |
| 146 | + @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) | |
| 147 | + public Map<String, Object> delete(@PathVariable("id") ID id) { | |
| 148 | + return baseService.delete(id); | |
| 149 | + } | |
| 150 | + | |
| 151 | +} | ... | ... |
src/main/java/com/bsth/controller/IndexController.java
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import java.io.BufferedInputStream; | |
| 4 | -import java.io.IOException; | |
| 5 | -import java.io.InputStream; | |
| 6 | - | |
| 7 | -import javax.servlet.http.HttpServletResponse; | |
| 8 | - | |
| 9 | -import org.apache.commons.lang3.StringUtils; | |
| 10 | -import org.slf4j.Logger; | |
| 11 | -import org.slf4j.LoggerFactory; | |
| 12 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 13 | -import org.springframework.web.bind.annotation.RestController; | |
| 14 | - | |
| 15 | -@RestController | |
| 16 | -@RequestMapping("/") | |
| 17 | -public class IndexController { | |
| 18 | - | |
| 19 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 20 | - | |
| 21 | - String indexSource; | |
| 22 | - | |
| 23 | - /** | |
| 24 | - * 构造函数 | |
| 25 | - */ | |
| 26 | - public IndexController() { | |
| 27 | - BufferedInputStream bis = null; | |
| 28 | - | |
| 29 | - try { | |
| 30 | - InputStream is = IndexController.class.getClassLoader().getResourceAsStream("static/index.html"); | |
| 31 | - bis = new BufferedInputStream(is); | |
| 32 | - StringBuilder source = new StringBuilder(); | |
| 33 | - byte[] buffer = new byte[bis.available()]; | |
| 34 | - | |
| 35 | - while (bis.read(buffer) != -1) { | |
| 36 | - source.append(new String(buffer)); | |
| 37 | - } | |
| 38 | - | |
| 39 | - indexSource = source.toString(); | |
| 40 | - } catch (Exception e) { | |
| 41 | - logger.error("", e); | |
| 42 | - } finally { | |
| 43 | - try { | |
| 44 | - bis.close(); | |
| 45 | - } catch (IOException e) { | |
| 46 | - logger.error("", e); | |
| 47 | - } | |
| 48 | - } | |
| 49 | - } | |
| 50 | - | |
| 51 | - /** | |
| 52 | - * | |
| 53 | - * @Title: index | |
| 54 | - * @Description: TODO(输出首页 index.html) | |
| 55 | - */ | |
| 56 | - @RequestMapping | |
| 57 | - public void index(String initFragment, HttpServletResponse resp) { | |
| 58 | - | |
| 59 | - // 初始打开的片段地址 | |
| 60 | - String outStr = StringUtils.replace(indexSource, "^_^initFragment^_^", | |
| 61 | - initFragment == null ? "" : initFragment); | |
| 62 | - | |
| 63 | - resp.setContentType("text/html;charset=UTF-8"); | |
| 64 | - try { | |
| 65 | - resp.getOutputStream().write(outStr.getBytes()); | |
| 66 | - } catch (IOException e) { | |
| 67 | - logger.error("", e); | |
| 68 | - } | |
| 69 | - | |
| 70 | - } | |
| 71 | -} | |
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import java.io.BufferedInputStream; | |
| 4 | +import java.io.IOException; | |
| 5 | +import java.io.InputStream; | |
| 6 | + | |
| 7 | +import javax.servlet.http.HttpServletResponse; | |
| 8 | + | |
| 9 | +import org.apache.commons.lang3.StringUtils; | |
| 10 | +import org.slf4j.Logger; | |
| 11 | +import org.slf4j.LoggerFactory; | |
| 12 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 13 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 14 | +import org.springframework.web.bind.annotation.RestController; | |
| 15 | + | |
| 16 | +@RestController | |
| 17 | +@RequestMapping("/") | |
| 18 | +public class IndexController { | |
| 19 | + | |
| 20 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 21 | + | |
| 22 | + String indexSource; | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * 构造函数 | |
| 26 | + */ | |
| 27 | + public IndexController() { | |
| 28 | + load(); | |
| 29 | + } | |
| 30 | + | |
| 31 | + /** | |
| 32 | + * | |
| 33 | + * @Title: index | |
| 34 | + * @Description: TODO(输出首页 index.html) | |
| 35 | + */ | |
| 36 | + @RequestMapping | |
| 37 | + public void index(String initFragment, HttpServletResponse resp) { | |
| 38 | + | |
| 39 | + // 初始打开的片段地址 | |
| 40 | + String outStr = StringUtils.replace(indexSource, "^_^initFragment^_^", | |
| 41 | + initFragment == null ? "" : initFragment); | |
| 42 | + | |
| 43 | + resp.setContentType("text/html;charset=UTF-8"); | |
| 44 | + try { | |
| 45 | + resp.getOutputStream().write(outStr.getBytes()); | |
| 46 | + } catch (IOException e) { | |
| 47 | + logger.error("", e); | |
| 48 | + } | |
| 49 | + | |
| 50 | + } | |
| 51 | + | |
| 52 | + @RequestMapping(value = "/index/load", method = RequestMethod.GET) | |
| 53 | + public void load() { | |
| 54 | + BufferedInputStream bis = null; | |
| 55 | + | |
| 56 | + try { | |
| 57 | + InputStream is = IndexController.class.getClassLoader().getResourceAsStream("static/index.html"); | |
| 58 | + bis = new BufferedInputStream(is); | |
| 59 | + StringBuilder source = new StringBuilder(); | |
| 60 | + byte[] buffer = new byte[bis.available()]; | |
| 61 | + | |
| 62 | + while (bis.read(buffer) != -1) { | |
| 63 | + source.append(new String(buffer)); | |
| 64 | + } | |
| 65 | + | |
| 66 | + indexSource = source.toString(); | |
| 67 | + } catch (Exception e) { | |
| 68 | + logger.error("", e); | |
| 69 | + } finally { | |
| 70 | + try { | |
| 71 | + bis.close(); | |
| 72 | + } catch (IOException e) { | |
| 73 | + logger.error("", e); | |
| 74 | + } | |
| 75 | + } | |
| 76 | + } | |
| 77 | +} | ... | ... |
src/main/java/com/bsth/controller/InoutCarparkController.java deleted
100644 → 0
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import com.bsth.common.ResponseCode; | |
| 4 | -import com.bsth.entity.LsInoutSectionRoute; | |
| 5 | -import com.bsth.repository.StationRouteCacheRepository; | |
| 6 | -import com.bsth.repository.StationRouteRepository; | |
| 7 | -import com.bsth.service.InoutCarparkService; | |
| 8 | -import com.bsth.service.StationRouteService; | |
| 9 | -import com.fasterxml.jackson.core.JsonProcessingException; | |
| 10 | -import org.slf4j.Logger; | |
| 11 | -import org.slf4j.LoggerFactory; | |
| 12 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 13 | -import org.springframework.util.StringUtils; | |
| 14 | -import org.springframework.web.bind.annotation.*; | |
| 15 | - | |
| 16 | -import java.util.HashMap; | |
| 17 | -import java.util.Map; | |
| 18 | - | |
| 19 | -@RestController | |
| 20 | -@RequestMapping("inout") | |
| 21 | -public class InoutCarparkController extends BaseController<LsInoutSectionRoute, Long>{ | |
| 22 | - | |
| 23 | - private final static Logger logger = LoggerFactory.getLogger(InoutCarparkController.class); | |
| 24 | - | |
| 25 | - @Autowired | |
| 26 | - InoutCarparkService inoutCarparkService; | |
| 27 | - | |
| 28 | - @RequestMapping(value = "/getStartEndByLine", method = RequestMethod.GET) | |
| 29 | - public Map<String, Object> getStartEndByLine(@RequestParam("lineId")int lineId, @RequestParam("version")int version) { | |
| 30 | - return inoutCarparkService.getStartEndByLine(lineId, version); | |
| 31 | - } | |
| 32 | - | |
| 33 | - @RequestMapping(value = "/getRouteByStartEnd", method = RequestMethod.GET) | |
| 34 | - public Map<String, Object> getRouteByStartEnd(@RequestParam("lineId")int lineId, @RequestParam("version")int version, @RequestParam("start")String start, @RequestParam("end")String end) { | |
| 35 | - return inoutCarparkService.getRouteByStartEnd(lineId, version, start, end); | |
| 36 | - } | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * 新增路段信息 | |
| 40 | - * | |
| 41 | - * @param map:<bsectionVector:折线百度坐标集合;dbType:圆坐标类型;descriptions:描述与说明;destroy:是否撤销;directions:方向;lineId:线路ID | |
| 42 | - * | |
| 43 | - * lineCode :线路编码;roadCoding:道路编码;sectionCode:路段编码;sectionDistance:路段长度;sectionName:路段名称;sectionTime:路段时长; | |
| 44 | - * | |
| 45 | - * sectionrouteCode:路段序号;speedLimit:路段限速> | |
| 46 | - * | |
| 47 | - * @return map<SUCCESS:成功;ERROR:异常> | |
| 48 | - */ | |
| 49 | - @RequestMapping(value="sectionSave" , method = RequestMethod.POST) | |
| 50 | - public Map<String, Object> sectionSave(@RequestParam Map<String, Object> map) { | |
| 51 | - map.put("createBy", ""); | |
| 52 | - map.put("updateBy", ""); | |
| 53 | - return inoutCarparkService.sectionSave(map); | |
| 54 | - } | |
| 55 | - | |
| 56 | - /** | |
| 57 | - * @Description :TODO(编辑线路走向) | |
| 58 | - * | |
| 59 | - * @param map <sectionId:路段ID; sectionJSON:路段信息> | |
| 60 | - * | |
| 61 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 62 | - */ | |
| 63 | - @RequestMapping(value="sectionUpdate" , method = RequestMethod.POST) | |
| 64 | - public Map<String, Object> sectionUpdate(@RequestParam Map<String, Object> map) { | |
| 65 | - | |
| 66 | - map.put("updateBy", ""); | |
| 67 | - | |
| 68 | - map.put("createBy", ""); | |
| 69 | - | |
| 70 | - map.put("createDate", ""); | |
| 71 | - | |
| 72 | - return inoutCarparkService.sectionUpdate(map); | |
| 73 | - | |
| 74 | - } | |
| 75 | - | |
| 76 | - /** | |
| 77 | - * @param id //路段路由id | |
| 78 | - * @Description: TODO(撤销路段) | |
| 79 | - */ | |
| 80 | - @RequestMapping(value = "/destroy", method = RequestMethod.POST) | |
| 81 | - public Map<String, Object> destroy(@RequestParam Map<String, Object> map) { | |
| 82 | - return inoutCarparkService.destroy(map); | |
| 83 | - } | |
| 84 | - | |
| 85 | - /** | |
| 86 | - * 从历史轨迹做进场路径规划 | |
| 87 | - * @Description: TODO(撤销路段) | |
| 88 | - */ | |
| 89 | - @RequestMapping(value = "/pathPlaningByHistory", method = RequestMethod.POST) | |
| 90 | - public Map<String, Object> pathPlaningByHistory(@RequestParam Map<String, Object> map){ | |
| 91 | - Map<String, Object> result = new HashMap<>(); | |
| 92 | - result.put("status", ResponseCode.SUCCESS); | |
| 93 | - try { | |
| 94 | - String schId = (String)map.get("schId"), version = (String)map.get("version"); | |
| 95 | - if (StringUtils.isEmpty(schId) || StringUtils.isEmpty(version)) { | |
| 96 | - throw new RuntimeException("无效的参数"); | |
| 97 | - } | |
| 98 | - inoutCarparkService.pathPlaningByHistory(Long.parseLong(schId), Integer.parseInt(version)); | |
| 99 | - } catch (Exception e) { | |
| 100 | - result.put("status", ResponseCode.ERROR); | |
| 101 | - logger.error("路径规划异常", e); | |
| 102 | - } | |
| 103 | - | |
| 104 | - return result; | |
| 105 | - } | |
| 106 | -} |
src/main/java/com/bsth/controller/LineController.java
| ... | ... | @@ -136,14 +136,4 @@ public class LineController extends BaseController<Line, Integer> { |
| 136 | 136 | public Map<String, Object> remove(Integer id){ |
| 137 | 137 | return service.remove(id); |
| 138 | 138 | } |
| 139 | - | |
| 140 | - /** | |
| 141 | - * 查询外部行业编码是否有更新 | |
| 142 | - * @param id | |
| 143 | - * @return | |
| 144 | - */ | |
| 145 | - @RequestMapping(value ="/getLineMatchStationIsUpdate" , method = RequestMethod.GET) | |
| 146 | - public Map<String, Object> getLineMatchStationIsUpdate(@RequestParam(defaultValue = "id") Integer id){ | |
| 147 | - return service.getLineMatchStationIsUpdate(id); | |
| 148 | - } | |
| 149 | 139 | } | ... | ... |
src/main/java/com/bsth/controller/LsSectionRouteController.java
0 → 100644
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.entity.LsSectionRoute; | |
| 5 | +import com.bsth.entity.LsStationRoute; | |
| 6 | +import com.bsth.entity.SectionRoute; | |
| 7 | +import com.bsth.service.LsSectionRouteService; | |
| 8 | +import org.slf4j.Logger; | |
| 9 | +import org.slf4j.LoggerFactory; | |
| 10 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 11 | +import org.springframework.data.domain.Page; | |
| 12 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 13 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 14 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 15 | +import org.springframework.web.bind.annotation.RestController; | |
| 16 | + | |
| 17 | +import java.util.Arrays; | |
| 18 | +import java.util.HashMap; | |
| 19 | +import java.util.List; | |
| 20 | +import java.util.Map; | |
| 21 | + | |
| 22 | +/** | |
| 23 | + * | |
| 24 | + * @ClassName: SectionRouteController(路段路由控制器) | |
| 25 | + * | |
| 26 | + * @Extends : BaseController | |
| 27 | + * | |
| 28 | + * @Description: TODO(路段路由控制层) | |
| 29 | + * | |
| 30 | + * @Author bsth@lq | |
| 31 | + * | |
| 32 | + * @Date 2016年05月03日 上午9:21:17 | |
| 33 | + * | |
| 34 | + * @Version 公交调度系统BS版 0.1 | |
| 35 | + * | |
| 36 | + */ | |
| 37 | + | |
| 38 | +@RestController | |
| 39 | +@RequestMapping("/api/lssectionroute") | |
| 40 | +public class LsSectionRouteController extends BaseController<LsSectionRoute, Integer> { | |
| 41 | + | |
| 42 | + private final static Logger log = LoggerFactory.getLogger(LsSectionRouteController.class); | |
| 43 | + | |
| 44 | + @Autowired | |
| 45 | + private LsSectionRouteService lsSectionRouteService; | |
| 46 | + | |
| 47 | + @RequestMapping(value = "/findPageByParams", method = RequestMethod.GET) | |
| 48 | + public Page<LsSectionRoute> findPageByParams(@RequestParam Map<String, Object> params) { | |
| 49 | + int page = params.get("page") == null ? 0 : Integer.parseInt(params.get("page").toString()); | |
| 50 | + int size = params.get("size") == null ? 10 : Integer.parseInt(params.get("size").toString()); | |
| 51 | + String order = params.get("order").toString(), direction = params.get("direction").toString(); | |
| 52 | + | |
| 53 | + return super.list(params, page, size, order, direction); | |
| 54 | + } | |
| 55 | + | |
| 56 | + /** | |
| 57 | + * @param id | |
| 58 | + * @throws | |
| 59 | + * @Description: TODO(批量撤销路段) | |
| 60 | + */ | |
| 61 | + @RequestMapping(value = "/destroy", method = RequestMethod.POST) | |
| 62 | + public Map<String, Object> destroy(Integer id) { | |
| 63 | + Map<String, Object> result = new HashMap<>(); | |
| 64 | + try { | |
| 65 | + lsSectionRouteService.batchDestroy(Arrays.asList(id)); | |
| 66 | + result.put("status", ResponseCode.SUCCESS); | |
| 67 | + } catch (Exception e) { | |
| 68 | + result.put("status", ResponseCode.ERROR); | |
| 69 | + log.error("", e); | |
| 70 | + } | |
| 71 | + | |
| 72 | + return result; | |
| 73 | + } | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * @param ids | |
| 77 | + * @throws | |
| 78 | + * @Description: TODO(批量撤销路段) | |
| 79 | + */ | |
| 80 | + @RequestMapping(value = "/batchDestroy", method = RequestMethod.POST) | |
| 81 | + public Map<String, Object> batchDestroy(@RequestParam(value = "ids[]") List<Integer> ids) { | |
| 82 | + Map<String, Object> result = new HashMap<>(); | |
| 83 | + try { | |
| 84 | + lsSectionRouteService.batchDestroy(ids); | |
| 85 | + result.put("status", ResponseCode.SUCCESS); | |
| 86 | + } catch (Exception e) { | |
| 87 | + result.put("status", ResponseCode.ERROR); | |
| 88 | + log.error("", e); | |
| 89 | + } | |
| 90 | + | |
| 91 | + return result; | |
| 92 | + } | |
| 93 | + | |
| 94 | + /** | |
| 95 | + * @param lineId | |
| 96 | + * @param version | |
| 97 | + * @param direction | |
| 98 | + * @param otherDirection | |
| 99 | + * @throws | |
| 100 | + * @Description: 引用另一上下行路段 | |
| 101 | + */ | |
| 102 | + @RequestMapping(value = "/quoteOtherSide", method = RequestMethod.POST) | |
| 103 | + public Map<String, Object> quoteOtherSide(int lineId, int version, int direction, int otherDirection) { | |
| 104 | + Map<String, Object> result = new HashMap<>(); | |
| 105 | + try { | |
| 106 | + lsSectionRouteService.quoteOtherSide(lineId, version, direction, otherDirection); | |
| 107 | + result.put("status", ResponseCode.SUCCESS); | |
| 108 | + } catch (Exception e) { | |
| 109 | + result.put("status", ResponseCode.ERROR); | |
| 110 | + log.error("", e); | |
| 111 | + } | |
| 112 | + | |
| 113 | + return result; | |
| 114 | + } | |
| 115 | + | |
| 116 | + @RequestMapping(value = "/add", method = RequestMethod.POST) | |
| 117 | + public Map<String, Object> add(LsSectionRoute sectionRoute) { | |
| 118 | + Map<String, Object> result = new HashMap<>(); | |
| 119 | + try { | |
| 120 | + lsSectionRouteService.add(sectionRoute); | |
| 121 | + result.put("status", ResponseCode.SUCCESS); | |
| 122 | + } catch (Exception e) { | |
| 123 | + result.put("status", ResponseCode.ERROR); | |
| 124 | + result.put("msg", e.getMessage()); | |
| 125 | + log.error("", e); | |
| 126 | + } | |
| 127 | + | |
| 128 | + return result; | |
| 129 | + } | |
| 130 | + | |
| 131 | + @RequestMapping(value = "/modify", method = RequestMethod.POST) | |
| 132 | + public Map<String, Object> modify(LsSectionRoute sectionRoute) { | |
| 133 | + Map<String, Object> result = new HashMap<>(); | |
| 134 | + try { | |
| 135 | + lsSectionRouteService.modify(sectionRoute); | |
| 136 | + result.put("status", ResponseCode.SUCCESS); | |
| 137 | + } catch (Exception e) { | |
| 138 | + result.put("status", ResponseCode.ERROR); | |
| 139 | + result.put("msg", e.getMessage()); | |
| 140 | + log.error("", e); | |
| 141 | + } | |
| 142 | + | |
| 143 | + return result; | |
| 144 | + } | |
| 145 | +} | ... | ... |
src/main/java/com/bsth/controller/LsStationRouteController.java
0 → 100644
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.entity.LsSectionRoute; | |
| 5 | +import com.bsth.entity.LsStationRoute; | |
| 6 | +import com.bsth.service.LsStationRouteService; | |
| 7 | +import com.fasterxml.jackson.databind.ObjectMapper; | |
| 8 | +import org.slf4j.Logger; | |
| 9 | +import org.slf4j.LoggerFactory; | |
| 10 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 11 | +import org.springframework.data.domain.Page; | |
| 12 | +import org.springframework.web.bind.annotation.*; | |
| 13 | + | |
| 14 | +import java.util.*; | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * @author Hill | |
| 18 | + */ | |
| 19 | +@RestController | |
| 20 | +@RequestMapping("/api/lsstationroute") | |
| 21 | +public class LsStationRouteController extends BaseController<LsStationRoute, Integer> { | |
| 22 | + | |
| 23 | + private static final Logger log = LoggerFactory.getLogger(LsStationRouteController.class); | |
| 24 | + | |
| 25 | + @Autowired | |
| 26 | + private LsStationRouteService lsStationRouteService; | |
| 27 | + | |
| 28 | + @Autowired | |
| 29 | + private ObjectMapper mapper; | |
| 30 | + | |
| 31 | + @RequestMapping(value = "/findAllByParams", method = RequestMethod.GET) | |
| 32 | + public Iterable<LsStationRoute> findAllByParams(@RequestParam Map<String, Object> params) { | |
| 33 | + return lsStationRouteService.findAllByParams(params); | |
| 34 | + } | |
| 35 | + | |
| 36 | + @RequestMapping(value = "/findPageByParams", method = RequestMethod.GET) | |
| 37 | + public Page<LsStationRoute> findPageByParams(@RequestParam Map<String, Object> params) { | |
| 38 | + int page = params.get("page") == null ? 0 : Integer.parseInt(params.get("page").toString()); | |
| 39 | + int size = params.get("size") == null ? 10 : Integer.parseInt(params.get("size").toString()); | |
| 40 | + String order = params.get("order").toString(), direction = params.get("direction").toString(); | |
| 41 | + | |
| 42 | + return super.list(params, page, size, order, direction); | |
| 43 | + } | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * @Description :TODO(查询站点的下一个缓存站点) | |
| 47 | + */ | |
| 48 | + @RequestMapping(value = "/findCurrentAndNext" , method = RequestMethod.GET) | |
| 49 | + public List<LsStationRoute> findCurrentAndNext(Integer id) { | |
| 50 | + return lsStationRouteService.findCurrentAndNext(id); | |
| 51 | + } | |
| 52 | + | |
| 53 | + /** | |
| 54 | + * @param id | |
| 55 | + * @throws | |
| 56 | + * @Description: TODO(批量撤销站点) | |
| 57 | + */ | |
| 58 | + @RequestMapping(value = "/destroy", method = RequestMethod.POST) | |
| 59 | + public Map<String, Object> destroy(Integer id) { | |
| 60 | + Map<String, Object> result = new HashMap<>(); | |
| 61 | + try { | |
| 62 | + lsStationRouteService.batchDestroy(Arrays.asList(id)); | |
| 63 | + result.put("status", ResponseCode.SUCCESS); | |
| 64 | + } catch (Exception e) { | |
| 65 | + result.put("status", ResponseCode.ERROR); | |
| 66 | + result.put("msg", e.getMessage()); | |
| 67 | + log.error("", e); | |
| 68 | + } | |
| 69 | + | |
| 70 | + return result; | |
| 71 | + } | |
| 72 | + | |
| 73 | + /** | |
| 74 | + * @param ids | |
| 75 | + * @throws | |
| 76 | + * @Description: TODO(批量撤销站点) | |
| 77 | + */ | |
| 78 | + @RequestMapping(value = "/batchDestroy", method = RequestMethod.POST) | |
| 79 | + public Map<String, Object> batchDestroy(@RequestParam(value = "ids[]") List<Integer> ids) { | |
| 80 | + Map<String, Object> result = new HashMap<>(); | |
| 81 | + try { | |
| 82 | + lsStationRouteService.batchDestroy(ids); | |
| 83 | + result.put("status", ResponseCode.SUCCESS); | |
| 84 | + } catch (Exception e) { | |
| 85 | + result.put("status", ResponseCode.ERROR); | |
| 86 | + result.put("msg", e.getMessage()); | |
| 87 | + log.error("", e); | |
| 88 | + } | |
| 89 | + | |
| 90 | + return result; | |
| 91 | + } | |
| 92 | + | |
| 93 | + /** | |
| 94 | + * 保存线路某个版本下单行的站点和路段路由 | |
| 95 | + * 常规使用在根据百度地图生成数据或者模板导入的批量保存 | |
| 96 | + * @param map | |
| 97 | + * @return | |
| 98 | + */ | |
| 99 | + @RequestMapping(value="addRoutes" , method = RequestMethod.POST) | |
| 100 | + public Map<String, Object> addRoutes(@RequestBody Map<String, Object> map) { | |
| 101 | + Map<String, Object> result = new HashMap<>(); | |
| 102 | + try { | |
| 103 | + if (map.get("lineId") == null || map.get("versions") == null || map.get("directions") == null) { | |
| 104 | + throw new IllegalArgumentException("需正确传入线路、方向、版本参数"); | |
| 105 | + } | |
| 106 | + Integer versions = Integer.parseInt(map.get("versions").toString()), directions = Integer.parseInt(map.get("directions").toString()), lineId = Integer.parseInt(map.get("lineId").toString()); | |
| 107 | + List<LsStationRoute> stationRoutes = mapper.convertValue(map.get("stationRoutes"), mapper.constructType(mapper.getTypeFactory().constructParametricType(List.class, LsStationRoute.class))); | |
| 108 | + List<LsSectionRoute> sectionRoutes = mapper.convertValue(map.get("sectionRoutes"), mapper.constructType(mapper.getTypeFactory().constructParametricType(List.class, LsSectionRoute.class))); | |
| 109 | + | |
| 110 | + result.putAll(lsStationRouteService.addRoutes(lineId, versions, directions, stationRoutes, sectionRoutes)); | |
| 111 | + result.put("status", ResponseCode.SUCCESS); | |
| 112 | + } catch (Exception e) { | |
| 113 | + result.put("status", ResponseCode.ERROR); | |
| 114 | + log.error("", e); | |
| 115 | + } | |
| 116 | + | |
| 117 | + return result; | |
| 118 | + } | |
| 119 | + | |
| 120 | + @RequestMapping(value = "/add", method = RequestMethod.POST) | |
| 121 | + public Map<String, Object> add(LsStationRoute stationRoute) { | |
| 122 | + Map<String, Object> result = new HashMap<>(); | |
| 123 | + try { | |
| 124 | + lsStationRouteService.add(stationRoute); | |
| 125 | + result.put("status", ResponseCode.SUCCESS); | |
| 126 | + } catch (Exception e) { | |
| 127 | + result.put("status", ResponseCode.ERROR); | |
| 128 | + result.put("msg", e.getMessage()); | |
| 129 | + log.error("", e); | |
| 130 | + } | |
| 131 | + | |
| 132 | + return result; | |
| 133 | + } | |
| 134 | + | |
| 135 | + @RequestMapping(value = "/modify", method = RequestMethod.POST) | |
| 136 | + public Map<String, Object> modify(LsStationRoute stationRoute) { | |
| 137 | + Map<String, Object> result = new HashMap<>(); | |
| 138 | + try { | |
| 139 | + lsStationRouteService.modify(stationRoute); | |
| 140 | + result.put("status", ResponseCode.SUCCESS); | |
| 141 | + } catch (Exception e) { | |
| 142 | + result.put("status", ResponseCode.ERROR); | |
| 143 | + result.put("msg", e.getMessage()); | |
| 144 | + log.error("", e); | |
| 145 | + } | |
| 146 | + | |
| 147 | + return result; | |
| 148 | + } | |
| 149 | + | |
| 150 | + @RequestMapping(value = "/exchangeDirection", method = RequestMethod.POST) | |
| 151 | + public Map<String, Object> exchangeDirection(int lineId, int version) { | |
| 152 | + Map<String, Object> result = new HashMap<>(); | |
| 153 | + try { | |
| 154 | + lsStationRouteService.exchangeDirection(lineId, version); | |
| 155 | + result.put("status", ResponseCode.SUCCESS); | |
| 156 | + } catch (Exception e) { | |
| 157 | + result.put("status", ResponseCode.ERROR); | |
| 158 | + result.put("msg", e.getMessage()); | |
| 159 | + log.error("", e); | |
| 160 | + } | |
| 161 | + | |
| 162 | + return result; | |
| 163 | + } | |
| 164 | + | |
| 165 | + @RequestMapping(value = "/modifyDistance", method = RequestMethod.POST) | |
| 166 | + public Map<String, Object> modifyDistance(@RequestParam Map<String, Object> params) { | |
| 167 | + Map<String, Object> result = new HashMap<>(); | |
| 168 | + try { | |
| 169 | + List<Integer> ids = new ArrayList<>(); | |
| 170 | + List<Double> distances = new ArrayList<>(); | |
| 171 | + for (Map.Entry<String, Object> entry : params.entrySet()) { | |
| 172 | + String key = entry.getKey(), value = String.valueOf(entry.getValue()); | |
| 173 | + ids.add(Integer.parseInt(key.split("_")[1])); | |
| 174 | + distances.add(Double.parseDouble(value) / 1000); | |
| 175 | + } | |
| 176 | + if (ids.size() == 0) { | |
| 177 | + throw new IllegalArgumentException("不合法的参数"); | |
| 178 | + } | |
| 179 | + lsStationRouteService.modifyDistance(ids, distances); | |
| 180 | + result.put("status", ResponseCode.SUCCESS); | |
| 181 | + } catch (Exception e) { | |
| 182 | + result.put("status", ResponseCode.ERROR); | |
| 183 | + result.put("msg", e.getMessage()); | |
| 184 | + log.error("", e); | |
| 185 | + } | |
| 186 | + | |
| 187 | + return result; | |
| 188 | + } | |
| 189 | + | |
| 190 | + @RequestMapping(value = "/circularRouteHandle", method = RequestMethod.POST) | |
| 191 | + public Map<String, Object> circularRouteHandle(Integer lineId, Integer version) { | |
| 192 | + Map<String, Object> result = new HashMap<>(); | |
| 193 | + try { | |
| 194 | + lsStationRouteService.circularRouteHandle(lineId, version); | |
| 195 | + result.put("status", ResponseCode.SUCCESS); | |
| 196 | + } catch (Exception e) { | |
| 197 | + result.put("status", ResponseCode.ERROR); | |
| 198 | + result.put("msg", e.getMessage()); | |
| 199 | + log.error("", e); | |
| 200 | + } | |
| 201 | + | |
| 202 | + return result; | |
| 203 | + } | |
| 204 | +} | ... | ... |
src/main/java/com/bsth/controller/RoadSpeedController.java deleted
100644 → 0
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import java.util.Map; | |
| 5 | - | |
| 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 com.bsth.entity.RoadSpeed; | |
| 13 | -import com.bsth.service.RoadSpeedService; | |
| 14 | - | |
| 15 | -/** | |
| 16 | - * | |
| 17 | - * @ClassName: RoadSpeedController(路段限速控制器) | |
| 18 | - * | |
| 19 | - * @Extends : BaseController | |
| 20 | - * | |
| 21 | - * @Description: TODO(路段限速控制层) | |
| 22 | - * | |
| 23 | - * @Author bsth@lq | |
| 24 | - * | |
| 25 | - * @Version 公交调度系统BS版 0.1 | |
| 26 | - * | |
| 27 | - */ | |
| 28 | -@RestController | |
| 29 | -@RequestMapping("roadSpeed") | |
| 30 | -public class RoadSpeedController extends BaseController<RoadSpeed, Integer> { | |
| 31 | - | |
| 32 | - @Autowired | |
| 33 | - private RoadSpeedService service; | |
| 34 | - | |
| 35 | - /*@RequestMapping(value="all", method = RequestMethod.GET) | |
| 36 | - public List<RoadSpeed> allRoadSpeed(){ | |
| 37 | - return service.allRoadSpeed(); | |
| 38 | - }*/ | |
| 39 | - | |
| 40 | - @RequestMapping(value="save", method = RequestMethod.POST) | |
| 41 | - public Map<String, Object> save(@RequestParam Map<String, Object> map){ | |
| 42 | - return service.roadSpeedSave(map); | |
| 43 | - } | |
| 44 | - | |
| 45 | - @RequestMapping(value="update", method = RequestMethod.POST) | |
| 46 | - public Map<String, Object> update(@RequestParam Map<String, Object> map){ | |
| 47 | - return service.update(map); | |
| 48 | - } | |
| 49 | - | |
| 50 | - @RequestMapping(value="findById", method = RequestMethod.GET) | |
| 51 | - public RoadSpeed findById(@RequestParam(defaultValue = "id") Integer id){ | |
| 52 | - return service.findId(id); | |
| 53 | - } | |
| 54 | -} |
src/main/java/com/bsth/controller/SectionController.java
| 1 | 1 | package com.bsth.controller; |
| 2 | 2 | |
| 3 | -import java.util.Map; | |
| 4 | - | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.entity.Section; | |
| 5 | +import com.bsth.entity.Station; | |
| 6 | +import com.bsth.repository.SectionRepository; | |
| 7 | +import com.bsth.service.SectionService; | |
| 8 | +import org.slf4j.Logger; | |
| 9 | +import org.slf4j.LoggerFactory; | |
| 5 | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | 11 | import org.springframework.web.bind.annotation.RequestMapping; |
| 7 | 12 | import org.springframework.web.bind.annotation.RequestMethod; |
| 8 | 13 | import org.springframework.web.bind.annotation.RequestParam; |
| 9 | 14 | import org.springframework.web.bind.annotation.RestController; |
| 10 | 15 | |
| 11 | -import com.bsth.entity.Section; | |
| 12 | -import com.bsth.repository.SectionRepository; | |
| 13 | -import com.bsth.service.SectionService; | |
| 14 | -import com.bsth.util.GetUIDAndCode; | |
| 16 | +import javax.servlet.http.HttpServletRequest; | |
| 17 | +import java.util.HashMap; | |
| 18 | +import java.util.List; | |
| 19 | +import java.util.Map; | |
| 15 | 20 | |
| 16 | 21 | /** |
| 17 | 22 | * |
| ... | ... | @@ -32,113 +37,23 @@ import com.bsth.util.GetUIDAndCode; |
| 32 | 37 | @RestController |
| 33 | 38 | @RequestMapping("section") |
| 34 | 39 | public class SectionController extends BaseController<Section, Integer> { |
| 40 | + | |
| 41 | + private final static Logger log = LoggerFactory.getLogger(SectionController.class); | |
| 35 | 42 | |
| 36 | 43 | @Autowired |
| 37 | - SectionService service; | |
| 44 | + SectionService sectionService; | |
| 38 | 45 | |
| 39 | 46 | @Autowired |
| 40 | 47 | SectionRepository sectionRepository; |
| 41 | - | |
| 42 | - /** | |
| 43 | - * 新增路段信息 | |
| 44 | - * | |
| 45 | - * @param map:<bsectionVector:折线百度坐标集合;dbType:圆坐标类型;descriptions:描述与说明;destroy:是否撤销;directions:方向;lineId:线路ID | |
| 46 | - * | |
| 47 | - * lineCode :线路编码;roadCoding:道路编码;sectionCode:路段编码;sectionDistance:路段长度;sectionName:路段名称;sectionTime:路段时长; | |
| 48 | - * | |
| 49 | - * sectionrouteCode:路段序号;speedLimit:路段限速> | |
| 50 | - * | |
| 51 | - * @return map<SUCCESS:成功;ERROR:异常> | |
| 52 | - */ | |
| 53 | - @RequestMapping(value="sectionSave" , method = RequestMethod.POST) | |
| 54 | - public Map<String, Object> sectionSave(@RequestParam Map<String, Object> map) { | |
| 55 | - map.put("createBy", ""); | |
| 56 | - map.put("updateBy", ""); | |
| 57 | - return service.sectionSave(map); | |
| 58 | - } | |
| 59 | - | |
| 60 | - /** | |
| 61 | - * @Description :TODO(编辑线路走向) | |
| 62 | - * | |
| 63 | - * @param map <sectionId:路段ID; sectionJSON:路段信息> | |
| 64 | - * | |
| 65 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 66 | - */ | |
| 67 | - @RequestMapping(value="sectionCut" , method = RequestMethod.POST) | |
| 68 | - public Map<String, Object> sectionCut(@RequestParam Map<String, Object> map) { | |
| 69 | - | |
| 70 | - map.put("updateBy", ""); | |
| 71 | - | |
| 72 | - map.put("createBy", ""); | |
| 73 | - | |
| 74 | - map.put("createDate", ""); | |
| 75 | - | |
| 76 | - return service.sectionCut(map); | |
| 77 | - | |
| 78 | - } | |
| 79 | - | |
| 80 | - /** | |
| 81 | - * @Description :TODO(编辑线路走向保存到线路历史表) | |
| 82 | - * | |
| 83 | - * @param map <sectionId:路段ID; sectionJSON:路段信息> | |
| 84 | - * | |
| 85 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 86 | - */ | |
| 87 | - @RequestMapping(value="sectionCutSaveLineLS" , method = RequestMethod.POST) | |
| 88 | - public Map<String, Object> sectionCutSaveLineLS(@RequestParam Map<String, Object> map) { | |
| 89 | - | |
| 90 | - map.put("updateBy", ""); | |
| 91 | - | |
| 92 | - map.put("createBy", ""); | |
| 93 | - | |
| 94 | - return service.sectionCutSaveLineLS(map); | |
| 95 | - | |
| 96 | - } | |
| 97 | - | |
| 98 | - /** | |
| 99 | - * @Description :TODO(编辑线路走向) | |
| 100 | - * | |
| 101 | - * @param map <sectionId:路段ID; sectionJSON:路段信息> | |
| 102 | - * | |
| 103 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 104 | - */ | |
| 105 | - @RequestMapping(value="sectionUpdate" , method = RequestMethod.POST) | |
| 106 | - public Map<String, Object> sectionUpdate(@RequestParam Map<String, Object> map) { | |
| 107 | - | |
| 108 | - map.put("updateBy", ""); | |
| 109 | - | |
| 110 | - map.put("createBy", ""); | |
| 111 | - | |
| 112 | - map.put("createDate", ""); | |
| 113 | - | |
| 114 | - return service.sectionUpdate(map); | |
| 115 | - | |
| 116 | - } | |
| 117 | - | |
| 118 | - /** | |
| 119 | - * @Description :TODO(编辑缓存线路走向) | |
| 120 | - */ | |
| 121 | - @RequestMapping(value="sectionCacheUpdate" , method = RequestMethod.POST) | |
| 122 | - public Map<String, Object> sectionCacheUpdate(@RequestParam Map<String, Object> map) { | |
| 123 | - | |
| 124 | - map.put("updateBy", ""); | |
| 125 | - | |
| 126 | - map.put("createBy", ""); | |
| 127 | - | |
| 128 | - map.put("createDate", ""); | |
| 129 | - | |
| 130 | - return service.sectionCacheUpdate(map); | |
| 131 | - | |
| 132 | - } | |
| 133 | - | |
| 48 | + | |
| 134 | 49 | /** |
| 135 | 50 | * @Description :TODO(查询路段编码) |
| 136 | 51 | * |
| 137 | 52 | * @return int <sectionCode路段编码> |
| 138 | 53 | */ |
| 139 | - @RequestMapping(value="getSectionCode" , method = RequestMethod.GET) | |
| 54 | + @RequestMapping(value="getSectionCode", method = RequestMethod.GET) | |
| 140 | 55 | public long getSectionCode() { |
| 141 | - return sectionRepository.sectionMaxId() + 1; | |
| 56 | + return sectionRepository.findLatestSectionId() + 1; | |
| 142 | 57 | } |
| 143 | 58 | |
| 144 | 59 | /** |
| ... | ... | @@ -146,9 +61,69 @@ public class SectionController extends BaseController<Section, Integer> { |
| 146 | 61 | * |
| 147 | 62 | * @return int <sectionCode路段编码> |
| 148 | 63 | */ |
| 149 | - @RequestMapping(value="doubleName" , method = RequestMethod.POST) | |
| 64 | + @RequestMapping(value="doubleName", method = RequestMethod.POST) | |
| 150 | 65 | public Map<String, Object> doubleName(@RequestParam Map<String, Object> map) { |
| 151 | - return service.doubleName(map); | |
| 66 | + return sectionService.doubleName(map); | |
| 152 | 67 | } |
| 153 | 68 | |
| 69 | + @RequestMapping(value="add", method = RequestMethod.POST) | |
| 70 | + public Map<String, Object> add(Section section) { | |
| 71 | + Map<String, Object> result = new HashMap<>(); | |
| 72 | + try { | |
| 73 | + sectionService.add(section); | |
| 74 | + result.put("status", ResponseCode.SUCCESS); | |
| 75 | + } catch (Exception e) { | |
| 76 | + result.put("status", ResponseCode.ERROR); | |
| 77 | + log.error("", e); | |
| 78 | + } | |
| 79 | + | |
| 80 | + return result; | |
| 81 | + } | |
| 82 | + | |
| 83 | + @RequestMapping(value="modify", method = RequestMethod.POST) | |
| 84 | + public Map<String, Object> modify(Section section) { | |
| 85 | + Map<String, Object> result = new HashMap<>(); | |
| 86 | + try { | |
| 87 | + sectionService.modify(section); | |
| 88 | + result.put("status", ResponseCode.SUCCESS); | |
| 89 | + } catch (Exception e) { | |
| 90 | + result.put("status", ResponseCode.ERROR); | |
| 91 | + log.error("", e); | |
| 92 | + } | |
| 93 | + | |
| 94 | + return result; | |
| 95 | + } | |
| 96 | + | |
| 97 | + @RequestMapping(value="findDistinctSectionName", method = RequestMethod.GET) | |
| 98 | + public Map<String, Object> findDistinctSectionName() { | |
| 99 | + Map<String, Object> result = new HashMap<>(); | |
| 100 | + try { | |
| 101 | + result.put("data", sectionService.findDistinctSectionName()); | |
| 102 | + result.put("status", ResponseCode.SUCCESS); | |
| 103 | + } catch (Exception e) { | |
| 104 | + result.put("status", ResponseCode.ERROR); | |
| 105 | + log.error("", e); | |
| 106 | + } | |
| 107 | + | |
| 108 | + return result; | |
| 109 | + } | |
| 110 | + | |
| 111 | + /** | |
| 112 | + * 根据路段名搜索路段信息 | |
| 113 | + * @param sectionName | |
| 114 | + * @return 站点列表 | |
| 115 | + */ | |
| 116 | + @RequestMapping(value="findSectionByName" , method = RequestMethod.GET) | |
| 117 | + public Map<String, Object> findSectionByName(String sectionName) { | |
| 118 | + Map<String, Object> result = new HashMap<>(); | |
| 119 | + try { | |
| 120 | + result.put("data", sectionService.findSectionByName(sectionName)); | |
| 121 | + result.put("status", ResponseCode.SUCCESS); | |
| 122 | + } catch (Exception e) { | |
| 123 | + result.put("status", ResponseCode.ERROR); | |
| 124 | + log.error("", e); | |
| 125 | + } | |
| 126 | + | |
| 127 | + return result; | |
| 128 | + } | |
| 154 | 129 | } | ... | ... |
src/main/java/com/bsth/controller/SectionRouteController.java
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import java.util.Map; | |
| 5 | - | |
| 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 com.bsth.entity.SectionRoute; | |
| 13 | -import com.bsth.entity.StationRouteCache; | |
| 14 | -import com.bsth.service.SectionRouteService; | |
| 15 | - | |
| 16 | -/** | |
| 17 | - * | |
| 18 | - * @ClassName: SectionRouteController(路段路由控制器) | |
| 19 | - * | |
| 20 | - * @Extends : BaseController | |
| 21 | - * | |
| 22 | - * @Description: TODO(路段路由控制层) | |
| 23 | - * | |
| 24 | - * @Author bsth@lq | |
| 25 | - * | |
| 26 | - * @Date 2016年05月03日 上午9:21:17 | |
| 27 | - * | |
| 28 | - * @Version 公交调度系统BS版 0.1 | |
| 29 | - * | |
| 30 | - */ | |
| 31 | - | |
| 32 | -@RestController | |
| 33 | -@RequestMapping("sectionroute") | |
| 34 | -public class SectionRouteController extends BaseController<SectionRoute, Integer> { | |
| 35 | - | |
| 36 | - @Autowired | |
| 37 | - SectionRouteService routeService; | |
| 38 | - | |
| 39 | - @RequestMapping(value = "/allls", method = RequestMethod.GET) | |
| 40 | - public Map allls(@RequestParam Map<String, Object> map) { | |
| 41 | - | |
| 42 | - return routeService.pageLs(map); | |
| 43 | - } | |
| 44 | - | |
| 45 | - | |
| 46 | - /** | |
| 47 | - * @param map | |
| 48 | - * @throws | |
| 49 | - * @Description: TODO(批量撤销路段) | |
| 50 | - */ | |
| 51 | - @RequestMapping(value = "/batchDestroy", method = RequestMethod.POST) | |
| 52 | - public Map<String, Object> updateBatch(@RequestParam Map<String, Object> map) { | |
| 53 | - return routeService.updateSectionRouteInfoFormId(map); | |
| 54 | - } | |
| 55 | - /** | |
| 56 | - * @param id //路段路由id | |
| 57 | - * @Description: TODO(撤销路段) | |
| 58 | - */ | |
| 59 | - @RequestMapping(value = "/destroy", method = RequestMethod.POST) | |
| 60 | - public Map<String, Object> destroy(@RequestParam Map<String, Object> map) { | |
| 61 | - | |
| 62 | - int id = Integer.parseInt(map.get("id").toString()); | |
| 63 | - | |
| 64 | - if(map.get("status") == null || Integer.parseInt(map.get("status").toString()) == 1) { | |
| 65 | - return routeService.destroy(id); | |
| 66 | - }else if(Integer.parseInt(map.get("status").toString()) == 2){ | |
| 67 | - return routeService.destroyHistory(id); | |
| 68 | - }else { | |
| 69 | - return map; | |
| 70 | - } | |
| 71 | - } | |
| 72 | - | |
| 73 | - /** | |
| 74 | - * @param @param map | |
| 75 | - * @throws | |
| 76 | - * @Title: list | |
| 77 | - * @Description: TODO(多条件查询) | |
| 78 | - */ | |
| 79 | - @RequestMapping(value = "/all", method = RequestMethod.GET) | |
| 80 | - public Iterable<SectionRoute> list(@RequestParam Map<String, Object> map) { | |
| 81 | - return routeService.list(map); | |
| 82 | - } | |
| 83 | - | |
| 84 | - @RequestMapping(value = "/cacheList", method = RequestMethod.GET) | |
| 85 | - public List<StationRouteCache> cacheList(@RequestParam Map<String, Object> map) { | |
| 86 | -// routeService.cacheList(map) | |
| 87 | - return null; | |
| 88 | - } | |
| 89 | - | |
| 90 | - /** | |
| 91 | - * @Description :TODO(查询路段信息) | |
| 92 | - * | |
| 93 | - * @param map <line.id_eq:线路ID; directions_eq:方向> | |
| 94 | - * | |
| 95 | - * @return Map<String, Object> | |
| 96 | - */ | |
| 97 | - @RequestMapping(value = "/findSection" , method = RequestMethod.GET) | |
| 98 | - public List<Map<String, Object>> findPoints(@RequestParam Map<String, Object> map) { | |
| 99 | - return routeService.getSectionRoute(map); | |
| 100 | - } | |
| 101 | - | |
| 102 | - | |
| 103 | - /** | |
| 104 | - * @Description :TODO(查询路段信息) | |
| 105 | - * | |
| 106 | - * @param map <line.id_eq:线路ID; directions_eq:方向> | |
| 107 | - * | |
| 108 | - * @return Map<String, Object> | |
| 109 | - */ | |
| 110 | - @RequestMapping(value = "/findCacheSection" , method = RequestMethod.GET) | |
| 111 | - public List<Map<String, Object>> getSectionRouteCache(@RequestParam Map<String, Object> map) { | |
| 112 | - return routeService.getSectionRouteCache(map); | |
| 113 | - } | |
| 114 | - | |
| 115 | - /** | |
| 116 | - * @Description : TODO(根据路段路由Id查询详情) | |
| 117 | - * | |
| 118 | - * @param map <id:路段路由ID> | |
| 119 | - * | |
| 120 | - * @return List<Map<String, Object>> | |
| 121 | - */ | |
| 122 | - @RequestMapping(value = "/findSectionRouteInfoFormId",method = RequestMethod.GET) | |
| 123 | - public List<Map<String, Object>> findSectionRouteInfoFormId(@RequestParam Map<String, Object> map) { | |
| 124 | - return routeService.findSectionRouteInfoFormId(map); | |
| 125 | - } | |
| 126 | - | |
| 127 | - /** | |
| 128 | - * @Description :TODO(查询线路某方向下的上一个路段序号) | |
| 129 | - * | |
| 130 | - * @param map <lineId:线路ID; direction:方向;sectionRouteCode:路段编码> | |
| 131 | - * | |
| 132 | - * @return List<Map<String, Object>> | |
| 133 | - */ | |
| 134 | - @RequestMapping(value = "/findUpSectionRouteCode" , method = RequestMethod.GET) | |
| 135 | - public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) { | |
| 136 | - return routeService.findUpSectionRouteCode(map); | |
| 137 | - } | |
| 138 | - | |
| 139 | - @RequestMapping(value = "/findCacheUpSectionRouteCode" , method = RequestMethod.GET) | |
| 140 | - public List<Map<String, Object>> findCacheUpSectionRouteCode(@RequestParam Map<String, Object> map) { | |
| 141 | - return routeService.findCacheUpSectionRouteCode(map); | |
| 142 | - } | |
| 143 | - | |
| 144 | - /** | |
| 145 | - * @Description :TODO(引用路段) | |
| 146 | - * | |
| 147 | - * @return List<Map<String, Object>> | |
| 148 | - */ | |
| 149 | - @RequestMapping(value = "/quoteSection" , method = RequestMethod.POST) | |
| 150 | - public Map<String, Object> quoteSection(@RequestParam Map<String, Object> map) { | |
| 151 | - return routeService.quoteSection(map); | |
| 152 | - } | |
| 153 | -} | |
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import java.util.List; | |
| 4 | +import java.util.Map; | |
| 5 | + | |
| 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 com.bsth.entity.SectionRoute; | |
| 13 | +import com.bsth.service.SectionRouteService; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * | |
| 17 | + * @ClassName: SectionRouteController(路段路由控制器) | |
| 18 | + * | |
| 19 | + * @Extends : BaseController | |
| 20 | + * | |
| 21 | + * @Description: TODO(路段路由控制层) | |
| 22 | + * | |
| 23 | + * @Author bsth@lq | |
| 24 | + * | |
| 25 | + * @Date 2016年05月03日 上午9:21:17 | |
| 26 | + * | |
| 27 | + * @Version 公交调度系统BS版 0.1 | |
| 28 | + * | |
| 29 | + */ | |
| 30 | + | |
| 31 | +@RestController | |
| 32 | +@RequestMapping("sectionroute") | |
| 33 | +public class SectionRouteController extends BaseController<SectionRoute, Integer> { | |
| 34 | + | |
| 35 | + @Autowired | |
| 36 | + SectionRouteService routeService; | |
| 37 | + | |
| 38 | + /** | |
| 39 | + * @param @param map | |
| 40 | + * @throws | |
| 41 | + * @Title: list | |
| 42 | + * @Description: TODO(多条件查询) | |
| 43 | + */ | |
| 44 | + @RequestMapping(value = "/all", method = RequestMethod.GET) | |
| 45 | + public Iterable<SectionRoute> list(@RequestParam Map<String, Object> map) { | |
| 46 | + return routeService.list(map); | |
| 47 | + } | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * @Description :TODO(查询路段信息) | |
| 51 | + * | |
| 52 | + * @param map <line.id_eq:线路ID; directions_eq:方向> | |
| 53 | + * | |
| 54 | + * @return Map<String, Object> | |
| 55 | + */ | |
| 56 | + @RequestMapping(value = "/findSection" , method = RequestMethod.GET) | |
| 57 | + public List<Map<String, Object>> findPoints(@RequestParam Map<String, Object> map) { | |
| 58 | + return routeService.getSectionRoute(map); | |
| 59 | + } | |
| 60 | + | |
| 61 | + /** | |
| 62 | + * @Description :TODO(查询线路某方向下的上一个路段序号) | |
| 63 | + * | |
| 64 | + * @param map <lineId:线路ID; direction:方向;sectionRouteCode:路段编码> | |
| 65 | + * | |
| 66 | + * @return List<Map<String, Object>> | |
| 67 | + */ | |
| 68 | + @RequestMapping(value = "/findUpSectionRouteCode" , method = RequestMethod.GET) | |
| 69 | + public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) { | |
| 70 | + return routeService.findUpSectionRouteCode(map); | |
| 71 | + } | |
| 72 | +} | ... | ... |
src/main/java/com/bsth/controller/SectionSpeedController.java deleted
100644 → 0
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import java.util.Map; | |
| 5 | - | |
| 6 | -import com.bsth.entity.SectionSpeed; | |
| 7 | -import com.bsth.service.SectionSpeedService; | |
| 8 | - | |
| 9 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | -import org.springframework.web.bind.annotation.*; | |
| 11 | - | |
| 12 | - | |
| 13 | -@RestController | |
| 14 | -@RequestMapping("sectionspeed") | |
| 15 | -public class SectionSpeedController extends BaseController<SectionSpeed, Integer> { | |
| 16 | - | |
| 17 | - @Autowired | |
| 18 | - private SectionSpeedService sectionSpeedService; | |
| 19 | - | |
| 20 | - /**@description TODO(新增路段限速) */ | |
| 21 | - @RequestMapping(value="add" , method = RequestMethod.POST) | |
| 22 | - public Map<String, Object> collectionSave(@RequestParam Map<String, Object> map) { | |
| 23 | - return sectionSpeedService.add(map); | |
| 24 | - } | |
| 25 | - | |
| 26 | - /**@description TODO(修改路段) */ | |
| 27 | - @RequestMapping(value="roadUpd" , method = RequestMethod.POST) | |
| 28 | - public Map<String, Object> roadUpd(@RequestParam Map<String, Object> map) { | |
| 29 | - return sectionSpeedService.roadUpd(map); | |
| 30 | - } | |
| 31 | - | |
| 32 | - /** @description TODO(根据线路ID与编码及方向查询路段限速信息) */ | |
| 33 | - @RequestMapping(value="getSectionSpeedInfoList",method=RequestMethod.GET) | |
| 34 | - public List<Map<String, Object>> getSectionSpeedInfoList(@RequestParam Map<String, Object> map){ | |
| 35 | - return sectionSpeedService.getSectionSpeedInfo(map); | |
| 36 | - } | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * @Description :TODO(查询路段信息) | |
| 40 | - * | |
| 41 | - * @param map <line.id_eq:线路ID; directions_eq:方向> | |
| 42 | - * | |
| 43 | - * @return Map<String, Object> | |
| 44 | - */ | |
| 45 | - @RequestMapping(value = "/analyticSection" , method = RequestMethod.GET) | |
| 46 | - public List<Map<String, Object>> findPoints(@RequestParam Map<String, Object> map) { | |
| 47 | - return sectionSpeedService.analyticSection(map); | |
| 48 | - } | |
| 49 | - | |
| 50 | -} |
src/main/java/com/bsth/controller/StationController.java
| 1 | 1 | package com.bsth.controller; |
| 2 | 2 | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.entity.LsSectionRoute; | |
| 5 | +import com.bsth.entity.LsStationRoute; | |
| 3 | 6 | import com.bsth.entity.Station; |
| 4 | 7 | import com.bsth.repository.StationRepository; |
| 5 | 8 | import com.bsth.service.StationService; |
| 6 | -import com.bsth.util.GetUIDAndCode; | |
| 9 | +import com.fasterxml.jackson.databind.ObjectMapper; | |
| 7 | 10 | import org.slf4j.Logger; |
| 8 | 11 | import org.slf4j.LoggerFactory; |
| 9 | 12 | 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; | |
| 13 | +import org.springframework.web.bind.annotation.*; | |
| 14 | 14 | |
| 15 | +import java.util.HashMap; | |
| 16 | +import java.util.List; | |
| 15 | 17 | import java.util.Map; |
| 16 | 18 | |
| 17 | 19 | /** |
| ... | ... | @@ -35,162 +37,88 @@ import java.util.Map; |
| 35 | 37 | public class StationController extends BaseController<Station, Integer> { |
| 36 | 38 | |
| 37 | 39 | @Autowired |
| 38 | - private StationService service; | |
| 40 | + private StationService stationService; | |
| 39 | 41 | |
| 40 | 42 | @Autowired |
| 41 | - StationRepository stationRepository; | |
| 43 | + private ObjectMapper mapper; | |
| 42 | 44 | |
| 43 | 45 | /** 日志记录器 */ |
| 44 | - private static final Logger LOGGER = LoggerFactory.getLogger(StationController.class); | |
| 46 | + private static final Logger log = LoggerFactory.getLogger(StationController.class); | |
| 45 | 47 | |
| 46 | 48 | /** |
| 47 | 49 | * @Description :TODO(根据坐标点匹配数据库中的站点) |
| 48 | - * | |
| 49 | - * @param map: <point:坐标点; name:站点名> | |
| 50 | - * | |
| 51 | 50 | */ |
| 52 | - @RequestMapping(value="matchStation" , method = RequestMethod.GET) | |
| 53 | - public Map<String, Object> matchStation(@RequestParam Map<String, Object> map) { | |
| 54 | - return service.matchStation(map); | |
| 55 | - } | |
| 56 | - | |
| 57 | - /** | |
| 58 | - * @Description :TODO(系统规划保存数据) | |
| 59 | - * | |
| 60 | - * @param map <stationJSON:站点信息; | |
| 61 | - * | |
| 62 | - * - - - - - - sectionJSON:路段信息; | |
| 63 | - * | |
| 64 | - * - - - - - - dbType:坐标类型; | |
| 65 | - * | |
| 66 | - * - - - - - - destroy:是否撤销; | |
| 67 | - * | |
| 68 | - * - - - - - - directions:方向; | |
| 69 | - * | |
| 70 | - * - - - - - - lineId:线路ID; | |
| 71 | - * | |
| 72 | - * - - - - - - radius:圆半径 | |
| 73 | - * | |
| 74 | - * - - - - - - shapesType:图形类型 | |
| 75 | - * | |
| 76 | - * - - - - - - speedLimit:限速> | |
| 77 | - * | |
| 78 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 79 | - */ | |
| 80 | - @RequestMapping(value="collectionSave" , method = RequestMethod.POST) | |
| 81 | - public Map<String, Object> collectionSave(@RequestParam Map<String, Object> map) { | |
| 82 | - return service.systemSaveStations(map); | |
| 83 | - } | |
| 84 | - | |
| 85 | - @RequestMapping(value="manualSave" , method = RequestMethod.POST) | |
| 86 | - public Map<String, Object> manualSave(@RequestParam Map<String, Object> map) { | |
| 87 | - return service.manualSave(map); | |
| 88 | - } | |
| 89 | - | |
| 90 | - @RequestMapping(value="cacheSave" , method = RequestMethod.POST) | |
| 91 | - public Map<String, Object> cacheSave(@RequestParam Map<String, Object> map) { | |
| 92 | - return service.cacheSave(map); | |
| 93 | - } | |
| 94 | - | |
| 95 | - /** | |
| 96 | - * @Description :TODO(新增站点保存) | |
| 97 | - * | |
| 98 | - * @param map <bJwpoints:中心点百度坐标;bPolygonGrid:多边形图形百度坐标;dbType:原坐标类型; | |
| 99 | - * | |
| 100 | - * descriptions:说明;destroy:是否撤销;directions:方向;distances:到站距离;gJwpoints:中心点WGS坐标; | |
| 101 | - * | |
| 102 | - * gPolygonGrid:多边形图形WGS坐标;lineId:线路ID;radius:圆半径;roadCoding:道路编码;shapesType:图形类型; | |
| 103 | - * | |
| 104 | - * stationCod:站点编码;stationMark:站点类型;stationName:站点名称;stationRouteCode:站点序号;toTime:到站时间 | |
| 105 | - * | |
| 106 | - * versions:版本号;x:城建坐标x;y:城建坐标y> | |
| 107 | - * | |
| 108 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 109 | - */ | |
| 110 | - @RequestMapping(value="stationSave" , method = RequestMethod.POST) | |
| 111 | - public Map<String, Object> stationSave(@RequestParam Map<String, Object> map) { | |
| 112 | - map.put("createBy", ""); | |
| 113 | - map.put("updateBy", ""); | |
| 114 | - return service.stationSaveMap(map); | |
| 115 | - } | |
| 116 | - | |
| 117 | - /** | |
| 118 | - * @Description :TODO(更新站点保存) | |
| 119 | - * | |
| 120 | - * @param map <bJwpoints:中心点百度坐标;bPolygonGrid:多边形图形百度坐标;dbType:原坐标类型; | |
| 121 | - * | |
| 122 | - * descriptions:说明;destroy:是否撤销;directions:方向;distances:到站距离;gJwpoints:中心点WGS坐标; | |
| 123 | - * | |
| 124 | - * gPolygonGrid:多边形图形WGS坐标;lineId:线路ID;radius:圆半径;roadCoding:道路编码;shapesType:图形类型; | |
| 125 | - * | |
| 126 | - * stationCod:站点编码;stationMark:站点类型;stationName:站点名称;stationRouteCode:站点序号;toTime:到站时间 | |
| 127 | - * | |
| 128 | - * versions:版本号;x:城建坐标x;y:城建坐标y> | |
| 129 | - * | |
| 130 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 131 | - */ | |
| 132 | - @RequestMapping(value="stationUpdate" , method = RequestMethod.POST) | |
| 133 | - public Map<String, Object> stationUpdate(@RequestParam Map<String, Object> map) { | |
| 134 | - map.put("updateBy", ""); //?? | |
| 135 | - return service.stationUpdate(map); | |
| 51 | + @RequestMapping(value="matchStation") | |
| 52 | + public Map<String, Object> matchStation(@RequestBody List<Station> stations) { | |
| 53 | + Map<String, Object> result = new HashMap<>(); | |
| 54 | + try { | |
| 55 | + stationService.matchStation(stations); | |
| 56 | + result.put("status", ResponseCode.SUCCESS); | |
| 57 | + result.put("data", stations); | |
| 58 | + } catch (Exception e) { | |
| 59 | + result.put("status", ResponseCode.ERROR); | |
| 60 | + log.error("", e); | |
| 61 | + } | |
| 62 | + | |
| 63 | + return result; | |
| 136 | 64 | } |
| 137 | - | |
| 65 | + | |
| 138 | 66 | /** |
| 139 | - * @Description :TODO(更新缓存站点保存) | |
| 140 | - * | |
| 141 | - * @param map <bJwpoints:中心点百度坐标;bPolygonGrid:多边形图形百度坐标;dbType:原坐标类型; | |
| 142 | - * | |
| 143 | - * descriptions:说明;destroy:是否撤销;directions:方向;distances:到站距离;gJwpoints:中心点WGS坐标; | |
| 144 | - * | |
| 145 | - * gPolygonGrid:多边形图形WGS坐标;lineId:线路ID;radius:圆半径;roadCoding:道路编码;shapesType:图形类型; | |
| 146 | - * | |
| 147 | - * stationCod:站点编码;stationMark:站点类型;stationName:站点名称;stationRouteCode:站点序号;toTime:到站时间 | |
| 148 | - * | |
| 149 | - * versions:版本号;x:城建坐标x;y:城建坐标y> | |
| 150 | - * | |
| 151 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 67 | + * 新增站点 | |
| 68 | + * @param station | |
| 69 | + * @return | |
| 152 | 70 | */ |
| 153 | - @RequestMapping(value="stationCacheUpdate" , method = RequestMethod.POST) | |
| 154 | - public Map<String, Object> stationCacheUpdate(@RequestParam Map<String, Object> map) { | |
| 155 | - map.put("updateBy", ""); | |
| 156 | - return service.stationCacheUpdate(map); | |
| 71 | + @RequestMapping(value = "/add", method = RequestMethod.POST) | |
| 72 | + public Map<String, Object> add(Station station) { | |
| 73 | + Map<String, Object> result = new HashMap<>(); | |
| 74 | + try { | |
| 75 | + stationService.add(station); | |
| 76 | + result.put("status", ResponseCode.SUCCESS); | |
| 77 | + } catch (Exception e) { | |
| 78 | + result.put("status", ResponseCode.ERROR); | |
| 79 | + result.put("msg", e.getMessage()); | |
| 80 | + log.error("", e); | |
| 81 | + } | |
| 82 | + | |
| 83 | + return result; | |
| 157 | 84 | } |
| 85 | + | |
| 158 | 86 | /** |
| 159 | - * @Description :TODO(更新内部编码) | |
| 160 | - * @param stationCount,sectionCount 更新数 | |
| 87 | + * 更新站点、站点路由信息 | |
| 88 | + * @param station | |
| 89 | + * @return | |
| 161 | 90 | */ |
| 162 | - @RequestMapping(value="updateStationAndSectionCode" , method = RequestMethod.GET) | |
| 163 | - public int updateStationAndSectionCode(@RequestParam Integer stationCount, Integer sectionCount) { | |
| 164 | -// System.out.println(stationCount+" _ "+ sectionCount ); | |
| 165 | -// for(int i = 0; i < stationCount; i++) { | |
| 166 | -//// System.out.println(i); | |
| 167 | -// stationRepository.stationMaxId() + 1; | |
| 168 | -// } | |
| 169 | -// for(int j = 0; j < sectionCount; j++) { | |
| 170 | -//// System.out.println(j); | |
| 171 | -// sectionRepository.sectionMaxId() + 1; | |
| 172 | -// } | |
| 173 | - return 1; | |
| 91 | + @RequestMapping(value="modify" , method = RequestMethod.POST) | |
| 92 | + public Map<String, Object> modify(Station station) { | |
| 93 | + Map<String, Object> result = new HashMap<>(); | |
| 94 | + try { | |
| 95 | + stationService.modify(station); | |
| 96 | + result.put("status", ResponseCode.SUCCESS); | |
| 97 | + } catch (Exception e) { | |
| 98 | + result.put("status", ResponseCode.ERROR); | |
| 99 | + throw new RuntimeException(e); | |
| 100 | + } | |
| 101 | + | |
| 102 | + return result; | |
| 174 | 103 | } |
| 104 | + | |
| 175 | 105 | /** |
| 176 | 106 | * @Description :TODO(查询站点编码) |
| 177 | 107 | * |
| 178 | 108 | * @return int <stationCode站点编码> |
| 179 | 109 | */ |
| 180 | - @RequestMapping(value="getStationCode" , method = RequestMethod.GET) | |
| 181 | - public long getStationCode() { | |
| 182 | - return stationRepository.stationMaxId() + 1; | |
| 183 | - | |
| 110 | + @RequestMapping(value="findStationCode" , method = RequestMethod.GET) | |
| 111 | + public long findStationCode() { | |
| 112 | + return stationService.findLatestStationId() + 1; | |
| 184 | 113 | } |
| 114 | + | |
| 185 | 115 | /** |
| 186 | - * @Description :TODO(查询站点编码) | |
| 187 | - * | |
| 188 | - * @return int <stationCode站点编码> | |
| 116 | + * 根据站名模糊搜索站点信息 | |
| 117 | + * @param stationName | |
| 118 | + * @return 站点列表 | |
| 189 | 119 | */ |
| 190 | - @RequestMapping(value="stationCacheSave" , method = RequestMethod.POST) | |
| 191 | - public Map<String, Object> stationCacheSave(@RequestParam Map<String, Object> map) { | |
| 192 | - map.put("createBy", ""); | |
| 193 | - map.put("updateBy", ""); | |
| 194 | - return service.stationCacheSave(map); | |
| 120 | + @RequestMapping(value="findStationByName" , method = RequestMethod.GET) | |
| 121 | + public List<Station> findStationByName(String stationName) { | |
| 122 | + return stationService.findStationByName(stationName); | |
| 195 | 123 | } |
| 196 | 124 | } | ... | ... |
src/main/java/com/bsth/controller/StationRouteController.java
| 1 | -package com.bsth.controller; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import java.util.Map; | |
| 5 | - | |
| 6 | -import javax.servlet.http.HttpServletResponse; | |
| 7 | - | |
| 8 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 10 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 11 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 12 | -import org.springframework.web.bind.annotation.RestController; | |
| 13 | - | |
| 14 | -import com.bsth.entity.LsStationRoute; | |
| 15 | -import com.bsth.entity.StationRoute; | |
| 16 | -import com.bsth.entity.StationRouteCache; | |
| 17 | -import com.bsth.repository.StationRouteCacheRepository; | |
| 18 | -import com.bsth.repository.StationRouteRepository; | |
| 19 | -import com.bsth.service.StationRouteService; | |
| 20 | - | |
| 21 | -/** | |
| 22 | - * | |
| 23 | - * @ClassName: StationRouteController(站点路由控制器) | |
| 24 | - * | |
| 25 | - * @Extends : BaseController | |
| 26 | - * | |
| 27 | - * @Description: TODO(站点路由控制层) | |
| 28 | - * | |
| 29 | - * @Author bsth@lq | |
| 30 | - * | |
| 31 | - * @Date 2016年5月03日 上午9:21:17 | |
| 32 | - * | |
| 33 | - * @Dersion 公交调度系统BS版 0.1 | |
| 34 | - * | |
| 35 | - */ | |
| 36 | -@RestController | |
| 37 | -@RequestMapping("stationroute") | |
| 38 | -public class StationRouteController extends BaseController<StationRoute, Integer> { | |
| 39 | - | |
| 40 | - @Autowired | |
| 41 | - StationRouteService service; | |
| 42 | - @Autowired | |
| 43 | - StationRouteRepository stationRouteRepository; | |
| 44 | - @Autowired | |
| 45 | - StationRouteCacheRepository stationRouteCacheRepository; | |
| 46 | - | |
| 47 | - | |
| 48 | - @RequestMapping(value = "/allls", method = RequestMethod.GET) | |
| 49 | - public Map allls(@RequestParam Map<String, Object> map) { | |
| 50 | - | |
| 51 | - return service.pageLs(map); | |
| 52 | - } | |
| 53 | - | |
| 54 | - @RequestMapping(value = "/all_ls", method = RequestMethod.GET) | |
| 55 | - public Iterable<LsStationRoute> list_ls(@RequestParam Map<String, Object> map) { | |
| 56 | - return service.list_ls(map); | |
| 57 | - } | |
| 58 | - | |
| 59 | - | |
| 60 | - @RequestMapping(value = "/all", method = RequestMethod.GET) | |
| 61 | - public Iterable<StationRoute> list(@RequestParam Map<String, Object> map) { | |
| 62 | - return service.list(map); | |
| 63 | - } | |
| 64 | - | |
| 65 | - @RequestMapping(value = "/cacheList", method = RequestMethod.GET) | |
| 66 | - public List<StationRouteCache> cacheList(@RequestParam Map<String, Object> map) { | |
| 67 | - return service.cacheList(map); | |
| 68 | - } | |
| 69 | - | |
| 70 | - /** | |
| 71 | - * @Description :TODO(查询路段信息) | |
| 72 | - * | |
| 73 | - * @param id | |
| 74 | - * | |
| 75 | - * @return Map<String, Object> | |
| 76 | - */ | |
| 77 | - @RequestMapping(value = "/export" , method = RequestMethod.GET) | |
| 78 | - public Map<String, Object> export(@RequestParam Integer id, HttpServletResponse resp) { | |
| 79 | - return service.getSectionRouteExport(id, resp); | |
| 80 | - } | |
| 81 | - | |
| 82 | - /** | |
| 83 | - * @param map | |
| 84 | - * @throws | |
| 85 | - * @Description: TODO(批量撤销站点) | |
| 86 | - */ | |
| 87 | - @RequestMapping(value = "/batchDestroy", method = RequestMethod.POST) | |
| 88 | - public Map<String, Object> updateBatch(@RequestParam Map<String, Object> map) { | |
| 89 | - return service.updateStationRouteInfoFormId(map); | |
| 90 | - } | |
| 91 | - | |
| 92 | - /** | |
| 93 | - * @Description :TODO(查询树站点与路段数据) | |
| 94 | - * | |
| 95 | - * @param map <line.id_eq:线路ID; directions_eq:方向> | |
| 96 | - * | |
| 97 | - * @return List<Map<String, Object>> | |
| 98 | - */ | |
| 99 | - @RequestMapping(value = "/findStations" , method = RequestMethod.GET) | |
| 100 | - public List<Map<String, Object>> findStations(@RequestParam Map<String, Object> map) { | |
| 101 | - return service.findPoints(map); | |
| 102 | - } | |
| 103 | - | |
| 104 | - @RequestMapping(value = "/systemQuote" , method = RequestMethod.POST) | |
| 105 | - public Map<String, Object> systemQuote(@RequestParam Map<String, Object> map) { | |
| 106 | - return service.systemQuote(map); | |
| 107 | - } | |
| 108 | - | |
| 109 | - /** | |
| 110 | - * @Description :TODO(查询线路某方向下的站点序号与类型) | |
| 111 | - * | |
| 112 | - * @param map <lineId:线路ID; direction:方向;stationRouteCode:站点编码> | |
| 113 | - * | |
| 114 | - * @return List<Map<String, Object>> | |
| 115 | - */ | |
| 116 | - @RequestMapping(value = "/findUpStationRouteCode" , method = RequestMethod.GET) | |
| 117 | - public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) { | |
| 118 | - return service.findUpStationRouteCode(map); | |
| 119 | - } | |
| 120 | - | |
| 121 | - /** | |
| 122 | - * @Description :TODO(查询线路某方向下的站点序号与类型) | |
| 123 | - */ | |
| 124 | - @RequestMapping(value = "/findCacheUpStationRouteCode" , method = RequestMethod.GET) | |
| 125 | - public List<Map<String, Object>> findCacheUpStationRouteCode(@RequestParam Map<String, Object> map) { | |
| 126 | - return service.findCacheUpStationRouteCode(map); | |
| 127 | - } | |
| 128 | - | |
| 129 | - /** | |
| 130 | - * @Description :TODO(查询站点的下一个缓存站点) | |
| 131 | - */ | |
| 132 | - @RequestMapping(value = "/findDownStationRoute" , method = RequestMethod.GET) | |
| 133 | - public List<Map<String, Object>> findDownStationRoute(@RequestParam Map<String, Object> map) { | |
| 134 | - return service.findDownStationRoute(map); | |
| 135 | - } | |
| 136 | - | |
| 137 | - /** | |
| 138 | - * @Description :TODO(查询线路某方向下所有站点的中心百度坐标) | |
| 139 | - * | |
| 140 | - * @param map <lineId:线路ID; direction:方向> | |
| 141 | - * | |
| 142 | - * @return List<Map<String, Object>> | |
| 143 | - */ | |
| 144 | - @RequestMapping(value = "/getStationRouteCenterPoints" , method = RequestMethod.GET) | |
| 145 | - public List<Map<String, Object>> getStationRouteCenterPoints(@RequestParam Map<String, Object> map) { | |
| 146 | - return service.getStationRouteCenterPoints(map); | |
| 147 | - } | |
| 148 | - | |
| 149 | - /** | |
| 150 | - * @Description :TODO(查询线路某方向下所有站点) | |
| 151 | - * | |
| 152 | - * @param map <lineId:线路ID; direction:方向> | |
| 153 | - * | |
| 154 | - * @return List<Map<String, Object>> | |
| 155 | - */ | |
| 156 | - @RequestMapping(value = "/getStationRouteList" , method = RequestMethod.GET) | |
| 157 | - public List<Map<String, Object>> getStationRouteList(@RequestParam Map<String, Object> map) { | |
| 158 | - return service.getStationRouteList(map); | |
| 159 | - } | |
| 160 | - | |
| 161 | - /** | |
| 162 | - * @Description :TODO(查询线路某方向下所有站点的中心百度坐标) | |
| 163 | - * | |
| 164 | - * @param map <lineId:线路ID; direction:方向> | |
| 165 | - * | |
| 166 | - * @return List<Map<String, Object>> | |
| 167 | - */ | |
| 168 | - @RequestMapping(value = "/getStationRouteCacheCenterPoints" , method = RequestMethod.GET) | |
| 169 | - public List<Map<String, Object>> getStationRouteCacheCenterPoints(@RequestParam Map<String, Object> map) { | |
| 170 | - return service.getStationRouteCacheCenterPoints(map); | |
| 171 | - } | |
| 172 | - | |
| 173 | - /** | |
| 174 | - * @Description :TODO(撤销站点) | |
| 175 | - * | |
| 176 | - * @param map <lineId:线路ID; destroy:是否撤销(0:否;1:是)> | |
| 177 | - * | |
| 178 | - * @return Map<String, Object> <SUCCESS ; ERROR> | |
| 179 | - */ | |
| 180 | - @RequestMapping(value = "/stationRouteIsDestroy" , method = RequestMethod.POST) | |
| 181 | - public Map<String, Object> stationRouteIsDestroy(@RequestParam Map<String, Object> map) { | |
| 182 | - return service.stationRouteIsDestroy(map); | |
| 183 | - } | |
| 184 | - | |
| 185 | - /** | |
| 186 | - * @Description : TODO(根据线路ID生成行单) | |
| 187 | - * | |
| 188 | - * @param map <id:线路ID> | |
| 189 | - * | |
| 190 | - * @return Map<String, Object> <SUCCESS ; ERROR ; NOTDATA> | |
| 191 | - */ | |
| 192 | - @RequestMapping(value = "/usingSingle",method = RequestMethod.POST) | |
| 193 | - public Map<String, Object> usingSingle(@RequestParam Map<String, Object> map) { | |
| 194 | - return service.usingSingle(map); | |
| 195 | - } | |
| 196 | - | |
| 197 | - | |
| 198 | - /** | |
| 199 | - * @Description : TODO(根据站点路由Id查询详情) | |
| 200 | - * | |
| 201 | - * @param map <id:站点路由ID> | |
| 202 | - * | |
| 203 | - * @return List<Map<String, Object>> | |
| 204 | - */ | |
| 205 | - @RequestMapping(value = "/findStationRouteInfo",method = RequestMethod.GET) | |
| 206 | - public List<Map<String, Object>> findStationRouteInfo(@RequestParam Map<String, Object> map) { | |
| 207 | - return service.findStationRouteInfo(map); | |
| 208 | - } | |
| 209 | - | |
| 210 | - @RequestMapping(value = "/stations", method = RequestMethod.GET) | |
| 211 | - public List<Map<String, Object>> findStations(Integer xlid, Integer xldir) { | |
| 212 | - return stationRouteRepository.findStations(xlid, xldir); | |
| 213 | - } | |
| 214 | - | |
| 215 | - /** | |
| 216 | - * | |
| 217 | - * @Title: findByMultiLine | |
| 218 | - * @Description: TODO(多线路路由查询) | |
| 219 | - */ | |
| 220 | - @RequestMapping(value = "/multiLine", method = RequestMethod.GET) | |
| 221 | - public Map<String, Object> findByMultiLine(@RequestParam String lineIds){ | |
| 222 | - return service.findByMultiLine(lineIds); | |
| 223 | - } | |
| 224 | - | |
| 225 | - /** | |
| 226 | - * | |
| 227 | - * @Title: updSwitchDir | |
| 228 | - * @Description: TODO(上下行切换) | |
| 229 | - */ | |
| 230 | - @RequestMapping(value = "/updSwitchDir", method = RequestMethod.POST) | |
| 231 | - public Map<String, Object> updSwitchDir(@RequestParam String lineIds, @RequestParam(value = "status", required = false)int status){ | |
| 232 | - return service.updSwitchDir(lineIds,status); | |
| 233 | - } | |
| 234 | - | |
| 235 | - /** | |
| 236 | - * | |
| 237 | - * @Title: upddis | |
| 238 | - * @Description: TODO(更新站距) | |
| 239 | - */ | |
| 240 | - @RequestMapping(value = "/upddis",method = RequestMethod.POST) | |
| 241 | - public Map<String, Object> upddis(@RequestParam Map<String, Object> map) { | |
| 242 | - return service.upddis(map); | |
| 243 | - } | |
| 244 | - | |
| 245 | - /** | |
| 246 | - * | |
| 247 | - * @Title: findCacheStationRoute | |
| 248 | - * @Description: TODO(查询缓存路由) | |
| 249 | - */ | |
| 250 | - @RequestMapping(value = "/findCacheStationRoute",method = RequestMethod.GET) | |
| 251 | - public List<StationRouteCache> findCacheStationRoute(@RequestParam Map<String, Object> map) { | |
| 252 | - int lineId = Integer.parseInt(map.get("lineId").toString()); | |
| 253 | - int dir = Integer.parseInt(map.get("dir").toString()); | |
| 254 | - return stationRouteCacheRepository.findstationRoute(lineId, dir); | |
| 255 | - } | |
| 256 | - | |
| 257 | - /** | |
| 258 | - * | |
| 259 | - * @Title: findCachePoint | |
| 260 | - * | |
| 261 | - * @param map <lineId:线路ID; dir:方向> | |
| 262 | - * | |
| 263 | - * @Description: TODO(查询缓存路由) | |
| 264 | - */ | |
| 265 | - @RequestMapping(value = "/findCachePoint",method = RequestMethod.GET) | |
| 266 | - public List<Map<String, Object>> findCachePoint(@RequestParam Map<String, Object> map) { | |
| 267 | - int lineId = Integer.parseInt(map.get("lineId").toString()); | |
| 268 | - int dir = Integer.parseInt(map.get("dir").toString()); | |
| 269 | - return service.findCachePoint(lineId, dir); | |
| 270 | - } | |
| 271 | - | |
| 272 | - | |
| 273 | - /** | |
| 274 | - * 查询博协站点 | |
| 275 | - * @param map | |
| 276 | - * @return | |
| 277 | - */ | |
| 278 | - @RequestMapping(value = "/findMatchStation", method = RequestMethod.GET) | |
| 279 | - public Map<String, Object> findMatchStation(@RequestParam Map<String, Object> map){ | |
| 280 | - return service.findMatchStation(map); | |
| 281 | - } | |
| 282 | - | |
| 283 | - /** | |
| 284 | - * 批量修改行业编码 | |
| 285 | - * @param map | |
| 286 | - * @return | |
| 287 | - */ | |
| 288 | - @RequestMapping(value = "/updIndustryCode",method = RequestMethod.POST) | |
| 289 | - public Map<String, Object> updIndustryCode(@RequestParam Map<String, Object> map) { | |
| 290 | - return service.updIndustryCode(map); | |
| 291 | - } | |
| 292 | - | |
| 293 | - /** | |
| 294 | - * 匹配外部站点行业编码 | |
| 295 | - * @param map | |
| 296 | - * @return | |
| 297 | - */ | |
| 298 | - @RequestMapping(value = "/matchIndustryCode",method = RequestMethod.POST) | |
| 299 | - public Map<String, Object> matchIndustryCode(@RequestParam Map<String, Object> map) { | |
| 300 | - return service.matchIndustryCode(map); | |
| 301 | - } | |
| 302 | - /** | |
| 303 | - * 匹配附近站点行业编码 | |
| 304 | - * @param map | |
| 305 | - * @return | |
| 306 | - */ | |
| 307 | - @RequestMapping(value = "/matchNearbyStation",method = RequestMethod.GET) | |
| 308 | - public Map<String, Object> matchNearbyStation(@RequestParam Map<String, Object> map) { | |
| 309 | - return service.matchNearbyStation(map); | |
| 310 | - } | |
| 311 | -} | |
| 1 | +package com.bsth.controller; | |
| 2 | + | |
| 3 | +import com.bsth.entity.LsStationRoute; | |
| 4 | +import com.bsth.entity.StationRoute; | |
| 5 | +import com.bsth.repository.StationRouteRepository; | |
| 6 | +import com.bsth.service.StationRouteService; | |
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 9 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 10 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 11 | +import org.springframework.web.bind.annotation.RestController; | |
| 12 | + | |
| 13 | +import javax.servlet.http.HttpServletResponse; | |
| 14 | +import java.util.List; | |
| 15 | +import java.util.Map; | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * | |
| 19 | + * @ClassName: StationRouteController(站点路由控制器) | |
| 20 | + * | |
| 21 | + * @Extends : BaseController | |
| 22 | + * | |
| 23 | + * @Description: TODO(站点路由控制层) | |
| 24 | + * | |
| 25 | + * @Author bsth@lq | |
| 26 | + * | |
| 27 | + * @Date 2016年5月03日 上午9:21:17 | |
| 28 | + * | |
| 29 | + * @Dersion 公交调度系统BS版 0.1 | |
| 30 | + * | |
| 31 | + */ | |
| 32 | +@RestController | |
| 33 | +@RequestMapping("stationroute") | |
| 34 | +public class StationRouteController extends BaseController<StationRoute, Integer> { | |
| 35 | + | |
| 36 | + @Autowired | |
| 37 | + StationRouteService stationRouteService; | |
| 38 | + @Autowired | |
| 39 | + StationRouteRepository stationRouteRepository; | |
| 40 | + | |
| 41 | + @RequestMapping(value = "/all", method = RequestMethod.GET) | |
| 42 | + @Override | |
| 43 | + public Iterable<StationRoute> list(@RequestParam Map<String, Object> map) { | |
| 44 | + return stationRouteService.list(map); | |
| 45 | + } | |
| 46 | + | |
| 47 | + /** | |
| 48 | + * @Description :TODO(查询路段信息) | |
| 49 | + * | |
| 50 | + * @param id | |
| 51 | + * | |
| 52 | + * @return Map<String, Object> | |
| 53 | + */ | |
| 54 | + @RequestMapping(value = "/export" , method = RequestMethod.GET) | |
| 55 | + public Map<String, Object> export(@RequestParam Integer id, HttpServletResponse resp) { | |
| 56 | + return stationRouteService.getSectionRouteExport(id, resp); | |
| 57 | + } | |
| 58 | + | |
| 59 | + /** | |
| 60 | + * @Description :TODO(查询树站点与路段数据) | |
| 61 | + * | |
| 62 | + * @param map <line.id_eq:线路ID; directions_eq:方向> | |
| 63 | + * | |
| 64 | + * @return List<Map<String, Object>> | |
| 65 | + */ | |
| 66 | + @RequestMapping(value = "/findStations" , method = RequestMethod.GET) | |
| 67 | + public Map<String, Object> findStations(@RequestParam Map<String, Object> map) { | |
| 68 | + map.put("destroy_eq", 0); | |
| 69 | + if (map.get("line.id_eq") == null || map.get("directions_eq") == null || map.get("versions_eq") == null) { | |
| 70 | + throw new IllegalArgumentException("需正确传入线路、方向、版本参数"); | |
| 71 | + } | |
| 72 | + | |
| 73 | + return stationRouteService.findPoints(map); | |
| 74 | + } | |
| 75 | + | |
| 76 | + @RequestMapping(value = "/systemQuote" , method = RequestMethod.POST) | |
| 77 | + public Map<String, Object> systemQuote(@RequestParam Map<String, Object> map) { | |
| 78 | + return stationRouteService.systemQuote(map); | |
| 79 | + } | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * @Description :TODO(查询线路某方向下的站点序号与类型) | |
| 83 | + * | |
| 84 | + * @param map <lineId:线路ID; direction:方向;stationRouteCode:站点编码> | |
| 85 | + * | |
| 86 | + * @return List<Map<String, Object>> | |
| 87 | + */ | |
| 88 | + @RequestMapping(value = "/findUpStationRouteCode" , method = RequestMethod.GET) | |
| 89 | + public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) { | |
| 90 | + return stationRouteService.findUpStationRouteCode(map); | |
| 91 | + } | |
| 92 | + | |
| 93 | + /** | |
| 94 | + * @Description :TODO(查询线路某方向下所有站点的中心百度坐标) | |
| 95 | + * | |
| 96 | + * @param map <lineId:线路ID; direction:方向> | |
| 97 | + * | |
| 98 | + * @return List<Map<String, Object>> | |
| 99 | + */ | |
| 100 | + @RequestMapping(value = "/getStationRouteCenterPoints" , method = RequestMethod.GET) | |
| 101 | + public List<Map<String, Object>> getStationRouteCenterPoints(@RequestParam Map<String, Object> map) { | |
| 102 | + return stationRouteService.getStationRouteCenterPoints(map); | |
| 103 | + } | |
| 104 | + | |
| 105 | + /** | |
| 106 | + * @Description :TODO(查询线路某方向下所有站点) | |
| 107 | + * | |
| 108 | + * @param map <lineId:线路ID; direction:方向> | |
| 109 | + * | |
| 110 | + * @return List<Map<String, Object>> | |
| 111 | + */ | |
| 112 | + @RequestMapping(value = "/getStationRouteList" , method = RequestMethod.GET) | |
| 113 | + public List<Map<String, Object>> getStationRouteList(@RequestParam Map<String, Object> map) { | |
| 114 | + return stationRouteService.getStationRouteList(map); | |
| 115 | + } | |
| 116 | + | |
| 117 | + /** | |
| 118 | + * @Description : TODO(根据线路ID生成行单) | |
| 119 | + * | |
| 120 | + * @param map <id:线路ID> | |
| 121 | + * | |
| 122 | + * @return Map<String, Object> <SUCCESS ; ERROR ; NOTDATA> | |
| 123 | + */ | |
| 124 | + @RequestMapping(value = "/usingSingle",method = RequestMethod.POST) | |
| 125 | + public Map<String, Object> usingSingle(@RequestParam Map<String, Object> map) { | |
| 126 | + return stationRouteService.usingSingle(map); | |
| 127 | + } | |
| 128 | + | |
| 129 | + @RequestMapping(value = "/stations", method = RequestMethod.GET) | |
| 130 | + public List<Map<String, Object>> findStations(Integer xlid, Integer xldir) { | |
| 131 | + return stationRouteRepository.findStations(xlid, xldir); | |
| 132 | + } | |
| 133 | + | |
| 134 | + /** | |
| 135 | + * | |
| 136 | + * @Title: findByMultiLine | |
| 137 | + * @Description: TODO(多线路路由查询) | |
| 138 | + */ | |
| 139 | + @RequestMapping(value = "/multiLine", method = RequestMethod.GET) | |
| 140 | + public Map<String, Object> findByMultiLine(@RequestParam String lineIds){ | |
| 141 | + return stationRouteService.findByMultiLine(lineIds); | |
| 142 | + } | |
| 143 | +} | ... | ... |
src/main/java/com/bsth/controller/geo_data/GeoDataController.java deleted
100644 → 0
| 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 | - } | |
| 96 | -} | |
| 97 | 0 | \ No newline at end of file |
src/main/java/com/bsth/controller/gps/GpsController.java
| 1 | -package com.bsth.controller.gps; | |
| 2 | - | |
| 3 | -import com.bsth.data.BasicData; | |
| 4 | -import com.bsth.data.gpsdata_v2.GpsRealData; | |
| 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; | |
| 8 | -import com.bsth.data.schedule.e_state_check.ScheduleStationCodeChecker; | |
| 9 | -import com.bsth.data.schedule.e_state_check.entity.SCodeInfo; | |
| 10 | -import com.bsth.service.gps.GpsService; | |
| 11 | -import com.bsth.service.gps.entity.GpsSpeed; | |
| 12 | -import com.google.common.base.Splitter; | |
| 13 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 14 | -import org.springframework.web.bind.annotation.*; | |
| 15 | - | |
| 16 | -import javax.servlet.http.HttpServletResponse; | |
| 17 | -import java.text.ParseException; | |
| 18 | -import java.util.ArrayList; | |
| 19 | -import java.util.HashMap; | |
| 20 | -import java.util.List; | |
| 21 | -import java.util.Map; | |
| 22 | - | |
| 23 | -@RestController | |
| 24 | -@RequestMapping("gps") | |
| 25 | -public class GpsController { | |
| 26 | - | |
| 27 | - @Autowired | |
| 28 | - GpsRealData gpsRealData; | |
| 29 | - | |
| 30 | - @Autowired | |
| 31 | - GpsService gpsService; | |
| 32 | - | |
| 33 | - @Autowired | |
| 34 | - OverspeedProcess overspeedProcess; | |
| 35 | - | |
| 36 | - @RequestMapping(value = "/real/all") | |
| 37 | - public Map<String, Object> search(@RequestParam Map<String, Object> map, | |
| 38 | - @RequestParam(defaultValue = "0") int page, | |
| 39 | - @RequestParam(defaultValue = "15") int size, | |
| 40 | - @RequestParam(defaultValue = "timestamp") String order, | |
| 41 | - @RequestParam(defaultValue = "DESC") String direction) { | |
| 42 | - | |
| 43 | - | |
| 44 | - return gpsService.search(map, page, size, order, direction); | |
| 45 | - } | |
| 46 | - | |
| 47 | - @RequestMapping(value = "/real/line/{lineCode}") | |
| 48 | - public List<GpsEntity> findByLineCode(@PathVariable("lineCode") String lineCode) { | |
| 49 | - return gpsRealData.getByLine(lineCode); | |
| 50 | - } | |
| 51 | - | |
| 52 | - @RequestMapping(value = "/real/line") | |
| 53 | - public Map<String, Object> findByLineCodes(@RequestParam String lineCodes) { | |
| 54 | - Map<String, Object> rs = new HashMap(); | |
| 55 | - List<String> lineArray = Splitter.on(",").splitToList(lineCodes); | |
| 56 | - //实时gps | |
| 57 | - List<GpsEntity> gpsList = gpsRealData.get(lineArray); | |
| 58 | - | |
| 59 | - //超速信息 | |
| 60 | - List<GpsOverspeed> overspeedList = overspeedProcess.findByLines(lineArray); | |
| 61 | - | |
| 62 | - //班次站点检查信息 | |
| 63 | - List<SCodeInfo> scis = ScheduleStationCodeChecker.findByLineIdx(lineArray); | |
| 64 | - | |
| 65 | - rs.put("gpsList", gpsList); | |
| 66 | - rs.put("overspeedList", overspeedList); | |
| 67 | - rs.put("scis", scis); | |
| 68 | - return rs; | |
| 69 | - } | |
| 70 | - | |
| 71 | - @RequestMapping(value = "/allDevices") | |
| 72 | - public Iterable<String> allDevices() { | |
| 73 | - return gpsRealData.allDevices(); | |
| 74 | - } | |
| 75 | - | |
| 76 | - @RequestMapping(value = "/removeRealGps", method = RequestMethod.POST) | |
| 77 | - public Map<String, Object> removeRealGps(@RequestParam String device) { | |
| 78 | - return gpsService.removeRealGps(device); | |
| 79 | - } | |
| 80 | - | |
| 81 | - /** | |
| 82 | - * @Title: history @Description: TODO(这个方法给测试页面用) @throws | |
| 83 | - */ | |
| 84 | - @RequestMapping(value = "/history/{device}") | |
| 85 | - public List<Map<String, Object>> history(@PathVariable("device") String device, @RequestParam Long startTime, | |
| 86 | - @RequestParam Long endTime, @RequestParam int directions) { | |
| 87 | - | |
| 88 | - return gpsService.history(device, startTime, endTime, directions); | |
| 89 | - } | |
| 90 | - | |
| 91 | - @RequestMapping(value = "/gpsHistory/multiple") | |
| 92 | - public List<Map<String, Object>> gpsHistory(@RequestParam String[] nbbmArray, @RequestParam Long st, | |
| 93 | - @RequestParam Long et) { | |
| 94 | - return (List<Map<String, Object>>) gpsService.history(nbbmArray, st, et).get("list"); | |
| 95 | - } | |
| 96 | - | |
| 97 | - /*@RequestMapping(value = "/analyse/ram") | |
| 98 | - public List<ArrivalInfo> ramData(@RequestParam String nbbm) { | |
| 99 | - return ArrivalDataBuffer.allMap.get(nbbm); | |
| 100 | - }*/ | |
| 101 | - | |
| 102 | - @RequestMapping(value = "/Car2DeviceId") | |
| 103 | - public Map<String, String> findCarDeviceIdMap() { | |
| 104 | - return BasicData.deviceId2NbbmMap.inverse(); | |
| 105 | - } | |
| 106 | - | |
| 107 | - @RequestMapping(value = "/buffAera") | |
| 108 | - public Map<String, Object> findBuffAeraByCode(@RequestParam String code, @RequestParam String type) { | |
| 109 | - return gpsService.findBuffAeraByCode(code, type); | |
| 110 | - } | |
| 111 | - | |
| 112 | - @RequestMapping(value = "/findRoadSpeed") | |
| 113 | - public Map<String, Object> findRoadSpeed(@RequestParam String lineCode) { | |
| 114 | - return gpsService.findRoadSpeed(lineCode); | |
| 115 | - } | |
| 116 | - | |
| 117 | - /** | |
| 118 | - * gps补全 | |
| 119 | - * type 0 : 实时GPS 1:走补传 | |
| 120 | - * @return | |
| 121 | - */ | |
| 122 | - @RequestMapping(value = "/gpsCompletion", method = RequestMethod.POST) | |
| 123 | - public Map<String, Object> gpsCompletion(@RequestParam long schId, @RequestParam int type) { | |
| 124 | - return gpsService.gpsCompletion(schId, type); | |
| 125 | - } | |
| 126 | - | |
| 127 | - /** | |
| 128 | - * 历史GPS查询 ,第二版轨迹回放用 | |
| 129 | - * @param nbbm | |
| 130 | - * @param st | |
| 131 | - * @param et | |
| 132 | - * @return | |
| 133 | - */ | |
| 134 | - @RequestMapping(value = "/history_v2/{nbbm}") | |
| 135 | - public Map<String, Object> history_v2(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et){ | |
| 136 | - return gpsService.history_v2(nbbm, st, et); | |
| 137 | - } | |
| 138 | - | |
| 139 | - /** | |
| 140 | - * 历史GPS查询 ,第三版轨迹回放用 | |
| 141 | - * @param nbbm | |
| 142 | - * @param st | |
| 143 | - * @param et | |
| 144 | - * @return | |
| 145 | - */ | |
| 146 | - @RequestMapping(value = "/history_v3/{nbbm}") | |
| 147 | - public Map<String, Object> history_v3(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et){ | |
| 148 | - return gpsService.history_v3(nbbm, st, et); | |
| 149 | - } | |
| 150 | - | |
| 151 | - /** | |
| 152 | - * 轨迹导出 | |
| 153 | - * @param nbbm | |
| 154 | - * @param st | |
| 155 | - * @param et | |
| 156 | - * @return | |
| 157 | - */ | |
| 158 | - @RequestMapping(value = "/history_v3/excel/{nbbm}") | |
| 159 | - public void trailExcel(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et, HttpServletResponse resp){ | |
| 160 | - gpsService.trailExcel(nbbm, st, et, resp); | |
| 161 | - } | |
| 162 | - | |
| 163 | - /** | |
| 164 | - * 轨迹异常数据导出 | |
| 165 | - * @param nbbm | |
| 166 | - * @param st | |
| 167 | - * @param et | |
| 168 | - * @return | |
| 169 | - */ | |
| 170 | - @RequestMapping(value = "/history_v3/excel_abnormal/{nbbm}") | |
| 171 | - public void abnormalExcel(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et, HttpServletResponse resp){ | |
| 172 | - gpsService.abnormalExcel(nbbm, st, et, resp); | |
| 173 | - } | |
| 174 | - | |
| 175 | - /** | |
| 176 | - * 到离站数据导出 | |
| 177 | - * @param nbbm | |
| 178 | - * @param st | |
| 179 | - * @param et | |
| 180 | - * @return | |
| 181 | - */ | |
| 182 | - @RequestMapping(value = "/history_v3/excel_arrival/{nbbm}") | |
| 183 | - public void arrivalExcel(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et, HttpServletResponse resp){ | |
| 184 | - gpsService.arrivalExcel(nbbm, st, et, resp); | |
| 185 | - } | |
| 186 | - | |
| 187 | - | |
| 188 | - | |
| 189 | - | |
| 190 | - /** | |
| 191 | - * 安全驾驶数据 分页查询 | |
| 192 | - * @param map | |
| 193 | - * @param page | |
| 194 | - * @param size | |
| 195 | - * @param order | |
| 196 | - * @param direction | |
| 197 | - * @return | |
| 198 | - */ | |
| 199 | - @RequestMapping(value = "/safeDriv") | |
| 200 | - public Map<String, Object> safeDrivList(@RequestParam Map<String, Object> map, | |
| 201 | - @RequestParam(defaultValue = "0") int page, | |
| 202 | - @RequestParam(defaultValue = "15") int size, | |
| 203 | - @RequestParam(defaultValue = "timestamp") String order, | |
| 204 | - @RequestParam(defaultValue = "DESC") String direction){ | |
| 205 | - return gpsService.safeDrivList(map , page, size, order, direction); | |
| 206 | - } | |
| 207 | - | |
| 208 | - @RequestMapping(value = "/findPosition", method = RequestMethod.GET) | |
| 209 | - public List<GpsSpeed> findPosition(@RequestParam String vehicle,@RequestParam String startdate,@RequestParam String enddate) throws ParseException { | |
| 210 | - String deviceid = BasicData.deviceId2NbbmMap.inverse().get(vehicle); | |
| 211 | - List<GpsSpeed> listGpsSpeed = new ArrayList<GpsSpeed>(); | |
| 212 | - listGpsSpeed = gpsService.findPosition(deviceid,startdate,enddate); | |
| 213 | - return listGpsSpeed; | |
| 214 | - } | |
| 215 | - | |
| 216 | - @RequestMapping(value = "/pagequery",method = RequestMethod.GET) | |
| 217 | - public Map<String, Object> pagequery(@RequestParam Map<String, Object> map){ | |
| 218 | - map.put("curPage", map.get("page").toString()); | |
| 219 | - map.put("pageData","10"); | |
| 220 | - return gpsService.Pagequery(map); | |
| 221 | - } | |
| 222 | - | |
| 223 | - /** | |
| 224 | - * 获取线路下所有车辆,包括实时设备 和 计划排班 | |
| 225 | - * @param lineCode | |
| 226 | - * @return | |
| 227 | - */ | |
| 228 | - @RequestMapping(value = "/allCarsByLine",method = RequestMethod.GET) | |
| 229 | - public Map<String, Object> allCarsByLine(String lineCode){ | |
| 230 | - return gpsService.allCarsByLine(lineCode); | |
| 231 | - } | |
| 232 | - | |
| 233 | -} | |
| 1 | +package com.bsth.controller.gps; | |
| 2 | + | |
| 3 | +import com.bsth.data.BasicData; | |
| 4 | +import com.bsth.data.gpsdata_v2.GpsRealData; | |
| 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; | |
| 8 | +import com.bsth.data.schedule.e_state_check.ScheduleStationCodeChecker; | |
| 9 | +import com.bsth.data.schedule.e_state_check.entity.SCodeInfo; | |
| 10 | +import com.bsth.service.gps.GpsService; | |
| 11 | +import com.bsth.service.gps.entity.GpsSpeed; | |
| 12 | +import com.google.common.base.Splitter; | |
| 13 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 14 | +import org.springframework.web.bind.annotation.*; | |
| 15 | + | |
| 16 | +import javax.servlet.http.HttpServletResponse; | |
| 17 | +import java.text.ParseException; | |
| 18 | +import java.util.ArrayList; | |
| 19 | +import java.util.HashMap; | |
| 20 | +import java.util.List; | |
| 21 | +import java.util.Map; | |
| 22 | + | |
| 23 | +@RestController | |
| 24 | +@RequestMapping("gps") | |
| 25 | +public class GpsController { | |
| 26 | + | |
| 27 | + @Autowired | |
| 28 | + GpsRealData gpsRealData; | |
| 29 | + | |
| 30 | + @Autowired | |
| 31 | + GpsService gpsService; | |
| 32 | + | |
| 33 | + @Autowired | |
| 34 | + OverspeedProcess overspeedProcess; | |
| 35 | + | |
| 36 | + @RequestMapping(value = "/real/all") | |
| 37 | + public Map<String, Object> search(@RequestParam Map<String, Object> map, | |
| 38 | + @RequestParam(defaultValue = "0") int page, | |
| 39 | + @RequestParam(defaultValue = "15") int size, | |
| 40 | + @RequestParam(defaultValue = "timestamp") String order, | |
| 41 | + @RequestParam(defaultValue = "DESC") String direction) { | |
| 42 | + | |
| 43 | + | |
| 44 | + return gpsService.search(map, page, size, order, direction); | |
| 45 | + } | |
| 46 | + | |
| 47 | + @RequestMapping(value = "/real/line/{lineCode}") | |
| 48 | + public List<GpsEntity> findByLineCode(@PathVariable("lineCode") String lineCode) { | |
| 49 | + return gpsRealData.getByLine(lineCode); | |
| 50 | + } | |
| 51 | + | |
| 52 | + @RequestMapping(value = "/real/line") | |
| 53 | + public Map<String, Object> findByLineCodes(@RequestParam String lineCodes) { | |
| 54 | + Map<String, Object> rs = new HashMap(); | |
| 55 | + List<String> lineArray = Splitter.on(",").splitToList(lineCodes); | |
| 56 | + //实时gps | |
| 57 | + List<GpsEntity> gpsList = gpsRealData.get(lineArray); | |
| 58 | + | |
| 59 | + //超速信息 | |
| 60 | + List<GpsOverspeed> overspeedList = overspeedProcess.findByLines(lineArray); | |
| 61 | + | |
| 62 | + //班次站点检查信息 | |
| 63 | + List<SCodeInfo> scis = ScheduleStationCodeChecker.findByLineIdx(lineArray); | |
| 64 | + | |
| 65 | + rs.put("gpsList", gpsList); | |
| 66 | + rs.put("overspeedList", overspeedList); | |
| 67 | + rs.put("scis", scis); | |
| 68 | + return rs; | |
| 69 | + } | |
| 70 | + | |
| 71 | + @RequestMapping(value = "/allDevices") | |
| 72 | + public Iterable<String> allDevices() { | |
| 73 | + return gpsRealData.allDevices(); | |
| 74 | + } | |
| 75 | + | |
| 76 | + @RequestMapping(value = "/removeRealGps", method = RequestMethod.POST) | |
| 77 | + public Map<String, Object> removeRealGps(@RequestParam String device) { | |
| 78 | + return gpsService.removeRealGps(device); | |
| 79 | + } | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * @Title: history @Description: TODO(这个方法给测试页面用) @throws | |
| 83 | + */ | |
| 84 | + @RequestMapping(value = "/history/{device}") | |
| 85 | + public List<Map<String, Object>> history(@PathVariable("device") String device, @RequestParam Long startTime, | |
| 86 | + @RequestParam Long endTime, @RequestParam int directions) { | |
| 87 | + | |
| 88 | + return gpsService.history(device, startTime, endTime, directions); | |
| 89 | + } | |
| 90 | + | |
| 91 | + @RequestMapping(value = "/gpsHistory/multiple") | |
| 92 | + public List<Map<String, Object>> gpsHistory(@RequestParam String[] nbbmArray, @RequestParam Long st, | |
| 93 | + @RequestParam Long et) { | |
| 94 | + return (List<Map<String, Object>>) gpsService.history(nbbmArray, st, et).get("list"); | |
| 95 | + } | |
| 96 | + | |
| 97 | + /*@RequestMapping(value = "/analyse/ram") | |
| 98 | + public List<ArrivalInfo> ramData(@RequestParam String nbbm) { | |
| 99 | + return ArrivalDataBuffer.allMap.get(nbbm); | |
| 100 | + }*/ | |
| 101 | + | |
| 102 | + @RequestMapping(value = "/Car2DeviceId") | |
| 103 | + public Map<String, String> findCarDeviceIdMap() { | |
| 104 | + return BasicData.deviceId2NbbmMap.inverse(); | |
| 105 | + } | |
| 106 | + | |
| 107 | + @RequestMapping(value = "/buffAera") | |
| 108 | + public Map<String, Object> findBuffAeraByCode(@RequestParam String lineCode, @RequestParam String code, @RequestParam String type) { | |
| 109 | + return gpsService.findBuffAeraByCode(lineCode, code, type); | |
| 110 | + } | |
| 111 | + | |
| 112 | + @RequestMapping(value = "/findRoadSpeed") | |
| 113 | + public Map<String, Object> findRoadSpeed(@RequestParam String lineCode) { | |
| 114 | + return gpsService.findRoadSpeed(lineCode); | |
| 115 | + } | |
| 116 | + | |
| 117 | + /** | |
| 118 | + * gps补全 | |
| 119 | + * type 0 : 实时GPS 1:走补传 | |
| 120 | + * @return | |
| 121 | + */ | |
| 122 | + @RequestMapping(value = "/gpsCompletion", method = RequestMethod.POST) | |
| 123 | + public Map<String, Object> gpsCompletion(@RequestParam long schId, @RequestParam int type) { | |
| 124 | + return gpsService.gpsCompletion(schId, type); | |
| 125 | + } | |
| 126 | + | |
| 127 | + /** | |
| 128 | + * 历史GPS查询 ,第二版轨迹回放用 | |
| 129 | + * @param nbbm | |
| 130 | + * @param st | |
| 131 | + * @param et | |
| 132 | + * @return | |
| 133 | + */ | |
| 134 | + @RequestMapping(value = "/history_v2/{nbbm}") | |
| 135 | + public Map<String, Object> history_v2(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et){ | |
| 136 | + return gpsService.history_v2(nbbm, st, et); | |
| 137 | + } | |
| 138 | + | |
| 139 | + /** | |
| 140 | + * 历史GPS查询 ,第三版轨迹回放用 | |
| 141 | + * @param nbbm | |
| 142 | + * @param st | |
| 143 | + * @param et | |
| 144 | + * @return | |
| 145 | + */ | |
| 146 | + @RequestMapping(value = "/history_v3/{nbbm}") | |
| 147 | + public Map<String, Object> history_v3(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et){ | |
| 148 | + return gpsService.history_v3(nbbm, st, et); | |
| 149 | + } | |
| 150 | + | |
| 151 | + /** | |
| 152 | + * 轨迹导出 | |
| 153 | + * @param nbbm | |
| 154 | + * @param st | |
| 155 | + * @param et | |
| 156 | + * @return | |
| 157 | + */ | |
| 158 | + @RequestMapping(value = "/history_v3/excel/{nbbm}") | |
| 159 | + public void trailExcel(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et, HttpServletResponse resp){ | |
| 160 | + gpsService.trailExcel(nbbm, st, et, resp); | |
| 161 | + } | |
| 162 | + | |
| 163 | + /** | |
| 164 | + * 轨迹异常数据导出 | |
| 165 | + * @param nbbm | |
| 166 | + * @param st | |
| 167 | + * @param et | |
| 168 | + * @return | |
| 169 | + */ | |
| 170 | + @RequestMapping(value = "/history_v3/excel_abnormal/{nbbm}") | |
| 171 | + public void abnormalExcel(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et, HttpServletResponse resp){ | |
| 172 | + gpsService.abnormalExcel(nbbm, st, et, resp); | |
| 173 | + } | |
| 174 | + | |
| 175 | + /** | |
| 176 | + * 到离站数据导出 | |
| 177 | + * @param nbbm | |
| 178 | + * @param st | |
| 179 | + * @param et | |
| 180 | + * @return | |
| 181 | + */ | |
| 182 | + @RequestMapping(value = "/history_v3/excel_arrival/{nbbm}") | |
| 183 | + public void arrivalExcel(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et, HttpServletResponse resp){ | |
| 184 | + gpsService.arrivalExcel(nbbm, st, et, resp); | |
| 185 | + } | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + /** | |
| 191 | + * 安全驾驶数据 分页查询 | |
| 192 | + * @param map | |
| 193 | + * @param page | |
| 194 | + * @param size | |
| 195 | + * @param order | |
| 196 | + * @param direction | |
| 197 | + * @return | |
| 198 | + */ | |
| 199 | + @RequestMapping(value = "/safeDriv") | |
| 200 | + public Map<String, Object> safeDrivList(@RequestParam Map<String, Object> map, | |
| 201 | + @RequestParam(defaultValue = "0") int page, | |
| 202 | + @RequestParam(defaultValue = "15") int size, | |
| 203 | + @RequestParam(defaultValue = "timestamp") String order, | |
| 204 | + @RequestParam(defaultValue = "DESC") String direction){ | |
| 205 | + return gpsService.safeDrivList(map , page, size, order, direction); | |
| 206 | + } | |
| 207 | + | |
| 208 | + @RequestMapping(value = "/findPosition", method = RequestMethod.GET) | |
| 209 | + public List<GpsSpeed> findPosition(@RequestParam String vehicle,@RequestParam String startdate,@RequestParam String enddate) throws ParseException { | |
| 210 | + String deviceid = BasicData.deviceId2NbbmMap.inverse().get(vehicle); | |
| 211 | + List<GpsSpeed> listGpsSpeed = new ArrayList<GpsSpeed>(); | |
| 212 | + listGpsSpeed = gpsService.findPosition(deviceid,startdate,enddate); | |
| 213 | + return listGpsSpeed; | |
| 214 | + } | |
| 215 | + | |
| 216 | + @RequestMapping(value = "/pagequery",method = RequestMethod.GET) | |
| 217 | + public Map<String, Object> pagequery(@RequestParam Map<String, Object> map){ | |
| 218 | + map.put("curPage", map.get("page").toString()); | |
| 219 | + map.put("pageData","10"); | |
| 220 | + return gpsService.Pagequery(map); | |
| 221 | + } | |
| 222 | + | |
| 223 | + /** | |
| 224 | + * 获取线路下所有车辆,包括实时设备 和 计划排班 | |
| 225 | + * @param lineCode | |
| 226 | + * @return | |
| 227 | + */ | |
| 228 | + @RequestMapping(value = "/allCarsByLine",method = RequestMethod.GET) | |
| 229 | + public Map<String, Object> allCarsByLine(String lineCode){ | |
| 230 | + return gpsService.allCarsByLine(lineCode); | |
| 231 | + } | |
| 232 | + | |
| 233 | +} | ... | ... |
src/main/java/com/bsth/controller/realcontrol/AdminUtilsController.java
| 1 | 1 | package com.bsth.controller.realcontrol; |
| 2 | 2 | |
| 3 | -import java.lang.reflect.Field; | |
| 4 | -import java.lang.reflect.Modifier; | |
| 5 | -import java.text.SimpleDateFormat; | |
| 6 | -import java.util.*; | |
| 7 | - | |
| 3 | +import ch.qos.logback.classic.Level; | |
| 4 | +import ch.qos.logback.classic.LoggerContext; | |
| 5 | +import com.bsth.common.ResponseCode; | |
| 8 | 6 | import com.bsth.data.BasicData; |
| 7 | +import com.bsth.data.directive.DayOfDirectives; | |
| 8 | +import com.bsth.data.directive.DirectivesPstThread; | |
| 9 | +import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | |
| 10 | +import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | |
| 11 | +import com.bsth.data.gpsdata_v2.thread.GpsDataLoaderThread; | |
| 12 | +import com.bsth.data.msg_queue.DirectivePushQueue; | |
| 13 | +import com.bsth.data.msg_queue.WebSocketPushQueue; | |
| 14 | +import com.bsth.data.pilot80.PilotReport; | |
| 15 | +import com.bsth.data.schedule.DayOfSchedule; | |
| 16 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 9 | 17 | import com.bsth.filter.SQLInjectFilter; |
| 18 | +import com.bsth.service.SectionService; | |
| 10 | 19 | import com.bsth.service.schedule.utils.SpringUtils; |
| 11 | 20 | import com.bsth.util.MailUtils; |
| 21 | +import com.bsth.websocket.handler.SendUtils; | |
| 12 | 22 | import com.fasterxml.jackson.core.JsonProcessingException; |
| 13 | -import com.fasterxml.jackson.databind.MapperFeature; | |
| 14 | 23 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 15 | 24 | import com.fasterxml.jackson.databind.SerializationFeature; |
| 16 | 25 | import org.slf4j.Logger; |
| ... | ... | @@ -20,21 +29,12 @@ import org.springframework.web.bind.annotation.RequestMapping; |
| 20 | 29 | import org.springframework.web.bind.annotation.RequestParam; |
| 21 | 30 | import org.springframework.web.bind.annotation.RestController; |
| 22 | 31 | |
| 23 | -import com.bsth.common.ResponseCode; | |
| 24 | -import com.bsth.data.directive.DayOfDirectives; | |
| 25 | -import com.bsth.data.directive.DirectivesPstThread; | |
| 26 | -import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | |
| 27 | -import com.bsth.data.gpsdata_v2.handlers.overspeed.OverspeedProcess; | |
| 28 | -import com.bsth.data.gpsdata_v2.thread.GpsDataLoaderThread; | |
| 29 | -import com.bsth.data.msg_queue.DirectivePushQueue; | |
| 30 | -import com.bsth.data.msg_queue.WebSocketPushQueue; | |
| 31 | -import com.bsth.data.pilot80.PilotReport; | |
| 32 | -import com.bsth.data.schedule.DayOfSchedule; | |
| 33 | -import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 34 | -import com.bsth.websocket.handler.SendUtils; | |
| 35 | - | |
| 36 | -import ch.qos.logback.classic.Level; | |
| 37 | -import ch.qos.logback.classic.LoggerContext; | |
| 32 | +import java.lang.reflect.Field; | |
| 33 | +import java.lang.reflect.Modifier; | |
| 34 | +import java.util.HashMap; | |
| 35 | +import java.util.List; | |
| 36 | +import java.util.Map; | |
| 37 | +import java.util.Set; | |
| 38 | 38 | |
| 39 | 39 | /** |
| 40 | 40 | * Created by panzhao on 2017/4/14. |
| ... | ... | @@ -70,6 +70,9 @@ public class AdminUtilsController { |
| 70 | 70 | @Autowired |
| 71 | 71 | private SQLInjectFilter sqlInjectFilter; |
| 72 | 72 | |
| 73 | + @Autowired | |
| 74 | + private SectionService sectionService; | |
| 75 | + | |
| 73 | 76 | /** |
| 74 | 77 | * 出现重复班次的车辆 |
| 75 | 78 | * |
| ... | ... | @@ -336,4 +339,30 @@ public class AdminUtilsController { |
| 336 | 339 | |
| 337 | 340 | return "error"; |
| 338 | 341 | } |
| 342 | + | |
| 343 | + @RequestMapping("/reloadSystemParam") | |
| 344 | + public String reloadSystemParam() { | |
| 345 | + Map<String, Object> result = new HashMap<>(); | |
| 346 | + try { | |
| 347 | + basicDataLoader.loadSystemParam(); | |
| 348 | + return "success"; | |
| 349 | + } catch (Exception e) { | |
| 350 | + e.printStackTrace(); | |
| 351 | + } | |
| 352 | + | |
| 353 | + return "error"; | |
| 354 | + } | |
| 355 | + | |
| 356 | + @RequestMapping("/section/translateWgs2Bd") | |
| 357 | + public String translateWgs2Bd() { | |
| 358 | + Map<String, Object> result = new HashMap<>(); | |
| 359 | + try { | |
| 360 | + sectionService.translateWgs2Bd(); | |
| 361 | + return "success"; | |
| 362 | + } catch (Exception e) { | |
| 363 | + e.printStackTrace(); | |
| 364 | + } | |
| 365 | + | |
| 366 | + return "error"; | |
| 367 | + } | |
| 339 | 368 | } |
| 340 | 369 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| 1 | 1 | package com.bsth.controller.realcontrol; |
| 2 | 2 | |
| 3 | -import java.io.ByteArrayOutputStream; | |
| 4 | -import java.io.IOException; | |
| 5 | -import java.io.InputStream; | |
| 6 | -import java.io.OutputStream; | |
| 7 | -import java.net.HttpURLConnection; | |
| 8 | -import java.net.MalformedURLException; | |
| 9 | -import java.net.URL; | |
| 10 | -import java.net.URLEncoder; | |
| 11 | -import java.sql.Connection; | |
| 12 | -import java.sql.Date; | |
| 13 | -import java.sql.PreparedStatement; | |
| 14 | -import java.sql.ResultSet; | |
| 15 | -import java.util.*; | |
| 16 | - | |
| 17 | -import com.bsth.data.forecast.entity.ArrivalEntity; | |
| 18 | -import com.bsth.entity.sys.SysUser; | |
| 19 | -import com.bsth.security.util.SecurityUtils; | |
| 20 | -import com.bsth.util.ReportUtils; | |
| 21 | -import com.bsth.util.db.DBUtils_MS; | |
| 22 | -import com.fasterxml.jackson.databind.ObjectMapper; | |
| 23 | -import org.apache.commons.io.IOUtils; | |
| 24 | -import org.apache.commons.lang3.StringEscapeUtils; | |
| 25 | -import org.joda.time.DateTime; | |
| 26 | -import org.joda.time.format.DateTimeFormat; | |
| 27 | -import org.joda.time.format.DateTimeFormatter; | |
| 28 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 29 | -import org.springframework.beans.factory.annotation.Value; | |
| 30 | -import org.springframework.web.bind.annotation.*; | |
| 31 | - | |
| 32 | 3 | import com.alibaba.fastjson.JSONArray; |
| 33 | 4 | import com.bsth.common.ResponseCode; |
| 34 | 5 | import com.bsth.controller.BaseController; |
| ... | ... | @@ -40,12 +11,39 @@ import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto; |
| 40 | 11 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| 41 | 12 | import com.bsth.entity.report.RepairReport; |
| 42 | 13 | import com.bsth.entity.schedule.SchedulePlanInfo; |
| 14 | +import com.bsth.entity.sys.SysUser; | |
| 15 | +import com.bsth.security.util.SecurityUtils; | |
| 43 | 16 | import com.bsth.service.realcontrol.ScheduleRealInfoService; |
| 17 | +import com.bsth.util.HttpClientUtils; | |
| 18 | +import com.fasterxml.jackson.databind.ObjectMapper; | |
| 19 | +import org.apache.commons.io.IOUtils; | |
| 20 | +import org.apache.commons.lang3.StringEscapeUtils; | |
| 21 | +import org.apache.http.HttpEntity; | |
| 22 | +import org.apache.http.client.config.RequestConfig; | |
| 23 | +import org.apache.http.client.methods.CloseableHttpResponse; | |
| 24 | +import org.apache.http.client.methods.HttpGet; | |
| 25 | +import org.apache.http.impl.client.CloseableHttpClient; | |
| 26 | +import org.joda.time.format.DateTimeFormat; | |
| 27 | +import org.joda.time.format.DateTimeFormatter; | |
| 28 | +import org.slf4j.Logger; | |
| 29 | +import org.slf4j.LoggerFactory; | |
| 30 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 31 | +import org.springframework.beans.factory.annotation.Value; | |
| 32 | +import org.springframework.web.bind.annotation.*; | |
| 33 | + | |
| 34 | +import java.io.*; | |
| 35 | +import java.net.HttpURLConnection; | |
| 36 | +import java.net.MalformedURLException; | |
| 37 | +import java.net.URL; | |
| 38 | +import java.net.URLEncoder; | |
| 39 | +import java.util.*; | |
| 44 | 40 | |
| 45 | 41 | @RestController |
| 46 | 42 | @RequestMapping("/realSchedule") |
| 47 | 43 | public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, Long> { |
| 48 | 44 | |
| 45 | + private final static Logger log = LoggerFactory.getLogger(ScheduleRealInfoController.class); | |
| 46 | + | |
| 49 | 47 | @Autowired |
| 50 | 48 | ScheduleRealInfoService scheduleRealInfoService; |
| 51 | 49 | |
| ... | ... | @@ -827,26 +825,30 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 827 | 825 | @RequestMapping(value = "ackCp", method = RequestMethod.POST) |
| 828 | 826 | public Map<String, Object> ackCp(@RequestParam Map<String, Object> param){ |
| 829 | 827 | Map<String, Object> res = new HashMap<>(); |
| 830 | - InputStream in = null; | |
| 831 | - SysUser user = SecurityUtils.getCurrentUser(); | |
| 832 | - DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); | |
| 828 | + BufferedReader br = null; | |
| 833 | 829 | StringBuilder url = new StringBuilder(cpUrl); |
| 834 | - HttpURLConnection con = null; | |
| 835 | 830 | try { |
| 836 | - con = (HttpURLConnection)new URL(url.append(param.get("id")).toString()).openConnection(); | |
| 837 | - con.setDoInput(true); | |
| 838 | - con.setRequestMethod("GET"); | |
| 839 | - con.setConnectTimeout(5000); | |
| 840 | - con.setReadTimeout(5000); | |
| 841 | - con.setRequestProperty("keep-alive", "true"); | |
| 842 | - con.setRequestProperty("accept", "*/*"); | |
| 843 | - | |
| 844 | - if (con.getResponseCode() == 200) { | |
| 845 | - in = con.getInputStream(); | |
| 846 | - ByteArrayOutputStream bout = new ByteArrayOutputStream(); | |
| 847 | - IOUtils.copy(in, bout); | |
| 848 | - Map<String, Object> map = new ObjectMapper().readValue(bout.toByteArray(), Map.class); | |
| 849 | - System.out.println(map); | |
| 831 | + url.append(param.get("id")); | |
| 832 | + CloseableHttpClient httpClient = HttpClientUtils.defaultHttpClient(url.toString()); | |
| 833 | + HttpGet get = new HttpGet(url.toString()); | |
| 834 | + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5500).setConnectionRequestTimeout(5000).setSocketTimeout(5500).build(); | |
| 835 | + get.setConfig(requestConfig); | |
| 836 | + CloseableHttpResponse response = httpClient.execute(get); | |
| 837 | + | |
| 838 | + int statusCode = response.getStatusLine().getStatusCode(); | |
| 839 | + if(statusCode != 200){ | |
| 840 | + log.error("http client status code: " + statusCode); | |
| 841 | + } | |
| 842 | + HttpEntity entity = response.getEntity(); | |
| 843 | + if (null != entity) { | |
| 844 | + br = new BufferedReader(new InputStreamReader(entity.getContent())); | |
| 845 | + StringBuffer stringBuffer = new StringBuffer(); | |
| 846 | + String str = ""; | |
| 847 | + while ((str = br.readLine()) != null) { | |
| 848 | + stringBuffer.append(str); | |
| 849 | + } | |
| 850 | + br.close(); | |
| 851 | + log.info(stringBuffer.toString()); | |
| 850 | 852 | } |
| 851 | 853 | } catch (MalformedURLException e) { |
| 852 | 854 | // TODO Auto-generated catch block |
| ... | ... | @@ -854,10 +856,6 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, |
| 854 | 856 | } catch (IOException e) { |
| 855 | 857 | // TODO Auto-generated catch block |
| 856 | 858 | e.printStackTrace(); |
| 857 | - } finally { | |
| 858 | - if (con != null) { | |
| 859 | - con.disconnect(); | |
| 860 | - } | |
| 861 | 859 | } |
| 862 | 860 | |
| 863 | 861 | return res; | ... | ... |
src/main/java/com/bsth/controller/realcontrol/calc/ReCalcDataController.java
| ... | ... | @@ -20,7 +20,8 @@ import java.util.Map; |
| 20 | 20 | @RequestMapping("/sch/reCalc") |
| 21 | 21 | public class ReCalcDataController { |
| 22 | 22 | |
| 23 | - private static String reCalcUrl = "http://10.10.150.24:30571/reCalc/scheduleDetail"; | |
| 23 | +// private static String reCalcUrl = "http://10.10.150.24:30571/reCalc/scheduleDetail"; | |
| 24 | + private static String reCalcUrl = "http://127.0.0.1:30571/reCalc/scheduleDetail"; | |
| 24 | 25 | |
| 25 | 26 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 26 | 27 | ... | ... |
src/main/java/com/bsth/controller/test/GpsTestController.java
| 1 | -package com.bsth.controller.test; | |
| 2 | - | |
| 3 | -import java.util.HashMap; | |
| 4 | -import java.util.List; | |
| 5 | -import java.util.Map; | |
| 6 | - | |
| 7 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 9 | -import org.springframework.web.bind.annotation.RequestParam; | |
| 10 | -import org.springframework.web.bind.annotation.RestController; | |
| 11 | - | |
| 12 | -import com.bsth.service.StationRouteService; | |
| 13 | - | |
| 14 | -@RestController | |
| 15 | -@RequestMapping("/test/gps") | |
| 16 | -public class GpsTestController { | |
| 17 | - | |
| 18 | - @Autowired | |
| 19 | - StationRouteService stationRouteService; | |
| 20 | - | |
| 21 | - @RequestMapping(value = "/route") | |
| 22 | - public List<Map<String, Object>> findRouteByLineId(@RequestParam int xl,@RequestParam int directions){ | |
| 23 | - Map<String, Object> map = new HashMap<>(); | |
| 24 | - map.put("line.id_eq", xl); | |
| 25 | - map.put("directions_eq", directions); | |
| 26 | - | |
| 27 | - List<Map<String, Object>> list = stationRouteService.findPoints(map); | |
| 28 | - return list; | |
| 29 | - } | |
| 30 | -} | |
| 1 | +package com.bsth.controller.test; | |
| 2 | + | |
| 3 | +import java.util.HashMap; | |
| 4 | +import java.util.List; | |
| 5 | +import java.util.Map; | |
| 6 | + | |
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 9 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 10 | +import org.springframework.web.bind.annotation.RestController; | |
| 11 | + | |
| 12 | +import com.bsth.service.StationRouteService; | |
| 13 | + | |
| 14 | +@RestController | |
| 15 | +@RequestMapping("/test/gps") | |
| 16 | +public class GpsTestController { | |
| 17 | + | |
| 18 | + @Autowired | |
| 19 | + StationRouteService stationRouteService; | |
| 20 | + | |
| 21 | + @RequestMapping(value = "/route") | |
| 22 | + public Map<String, Object> findRouteByLineId(@RequestParam int xl,@RequestParam int directions){ | |
| 23 | + Map<String, Object> map = new HashMap<>(); | |
| 24 | + map.put("line.id_eq", xl); | |
| 25 | + map.put("directions_eq", directions); | |
| 26 | + | |
| 27 | + return stationRouteService.findPoints(map); | |
| 28 | + } | |
| 29 | +} | ... | ... |
src/main/java/com/bsth/data/BasicData.java
| ... | ... | @@ -12,6 +12,8 @@ import java.util.List; |
| 12 | 12 | import java.util.Map; |
| 13 | 13 | import java.util.Set; |
| 14 | 14 | |
| 15 | +import com.bsth.entity.*; | |
| 16 | +import com.bsth.repository.*; | |
| 15 | 17 | import org.apache.commons.lang3.StringUtils; |
| 16 | 18 | import org.slf4j.Logger; |
| 17 | 19 | import org.slf4j.LoggerFactory; |
| ... | ... | @@ -28,13 +30,6 @@ import com.bsth.entity.Personnel; |
| 28 | 30 | import com.bsth.entity.StationRoute; |
| 29 | 31 | import com.bsth.entity.calc.CalcInterval; |
| 30 | 32 | import com.bsth.entity.schedule.CarConfigInfo; |
| 31 | -import com.bsth.repository.BusinessRepository; | |
| 32 | -import com.bsth.repository.CarParkRepository; | |
| 33 | -import com.bsth.repository.CarsRepository; | |
| 34 | -import com.bsth.repository.LineRepository; | |
| 35 | -import com.bsth.repository.PersonnelRepository; | |
| 36 | -import com.bsth.repository.StationRepository; | |
| 37 | -import com.bsth.repository.StationRouteRepository; | |
| 38 | 33 | import com.bsth.repository.calc.CalcIntervalRepository; |
| 39 | 34 | import com.bsth.repository.schedule.CarConfigInfoRepository; |
| 40 | 35 | import com.google.common.collect.BiMap; |
| ... | ... | @@ -82,6 +77,9 @@ public class BasicData { |
| 82 | 77 | //线路编码和名称对照 |
| 83 | 78 | public static Map<String, String> lineCode2NameMap; |
| 84 | 79 | |
| 80 | + //名称和线路编码对照 | |
| 81 | + public static Map<String, String> lineName2CodeMap; | |
| 82 | + | |
| 85 | 83 | public static Map<String, String> lineCodeAllNameMap; |
| 86 | 84 | //停车场 |
| 87 | 85 | public static List<String> parkCodeList; |
| ... | ... | @@ -107,6 +105,9 @@ public class BasicData { |
| 107 | 105 | // 线路编码_日期 等级 |
| 108 | 106 | public static Map<String, String> lineDate2Level; |
| 109 | 107 | |
| 108 | + | |
| 109 | + private static Map<String, SystemParam> key2param = new HashMap<>(); | |
| 110 | + | |
| 110 | 111 | static Logger logger = LoggerFactory.getLogger(BasicData.class); |
| 111 | 112 | |
| 112 | 113 | public static String getStationNameByCode(String code, String prefix){ |
| ... | ... | @@ -165,6 +166,9 @@ public class BasicData { |
| 165 | 166 | @Autowired |
| 166 | 167 | CalcIntervalRepository calcIntervalRepository; |
| 167 | 168 | |
| 169 | + @Autowired | |
| 170 | + private SystemParamRepository systemParamRepository; | |
| 171 | + | |
| 168 | 172 | @Override |
| 169 | 173 | public void run() { |
| 170 | 174 | loadAllData(); |
| ... | ... | @@ -196,6 +200,7 @@ public class BasicData { |
| 196 | 200 | logger.info("load geo cache..,"); |
| 197 | 201 | geoCacheData.loadData(); |
| 198 | 202 | station2ParkBuffer.saveAll(); |
| 203 | + loadSystemParam(); | |
| 199 | 204 | logger.info("加载基础数据成功!,"); |
| 200 | 205 | } catch (Exception e) { |
| 201 | 206 | logger.error("加载基础数据时出现异常,", e); |
| ... | ... | @@ -327,11 +332,12 @@ public class BasicData { |
| 327 | 332 | * @Description: TODO(加载线路相关信息) |
| 328 | 333 | */ |
| 329 | 334 | public void loadLineInfo() { |
| 330 | - Iterator<Line> iterator = lineRepository.findAllService().iterator(); | |
| 335 | + Iterator<Line> iterator = lineRepository.findAllLine().iterator(); | |
| 331 | 336 | |
| 332 | 337 | Line line; |
| 333 | 338 | BiMap<Integer, String> biMap = HashBiMap.create(); |
| 334 | 339 | Map<String, String> code2name = new HashMap<>(); |
| 340 | + Map<String, String> name2code = new HashMap<>(); | |
| 335 | 341 | Map<Integer, String> id2SHcode = new HashMap<Integer, String>(); |
| 336 | 342 | Map<String, String> code2SHcode = new HashMap<String, String>(); |
| 337 | 343 | Map<String, Integer> tempStationName2YgcNumber = new HashMap<String, Integer>(); |
| ... | ... | @@ -365,12 +371,14 @@ public class BasicData { |
| 365 | 371 | line = iterator.next(); |
| 366 | 372 | biMap.put(line.getId(), line.getLineCode()); |
| 367 | 373 | code2name.put(line.getLineCode(), line.getName()); |
| 374 | + name2code.put(line.getName(), line.getLineCode()); | |
| 368 | 375 | id2SHcode.put(line.getId(), line.getShanghaiLinecode()); |
| 369 | 376 | code2SHcode.put(line.getLineCode(), line.getShanghaiLinecode()); |
| 370 | 377 | } |
| 371 | 378 | |
| 372 | 379 | lineId2CodeMap = biMap; |
| 373 | 380 | lineCode2NameMap = code2name; |
| 381 | + lineName2CodeMap = name2code; | |
| 374 | 382 | lineId2ShangHaiCodeMap = id2SHcode; |
| 375 | 383 | lineCode2ShangHaiCodeMap = code2SHcode; |
| 376 | 384 | stationName2YgcNumber = tempStationName2YgcNumber; |
| ... | ... | @@ -448,5 +456,25 @@ public class BasicData { |
| 448 | 456 | |
| 449 | 457 | lineDate2Level = result; |
| 450 | 458 | } |
| 459 | + | |
| 460 | + /** | |
| 461 | + * 加载系统配置参数 | |
| 462 | + */ | |
| 463 | + public void loadSystemParam() { | |
| 464 | + Map<String, SystemParam> key2param = new HashMap<>(); | |
| 465 | + Iterator<SystemParam> systemParamIterator = systemParamRepository.findAll().iterator(); | |
| 466 | + while (systemParamIterator.hasNext()) { | |
| 467 | + SystemParam systemParam = systemParamIterator.next(); | |
| 468 | + key2param.put(systemParam.getKey(), systemParam); | |
| 469 | + } | |
| 470 | + | |
| 471 | + if (key2param.size() > 0) { | |
| 472 | + BasicData.key2param = key2param; | |
| 473 | + } | |
| 474 | + } | |
| 475 | + } | |
| 476 | + | |
| 477 | + public static Map<String, SystemParam> getSystemParam() { | |
| 478 | + return key2param; | |
| 451 | 479 | } |
| 452 | 480 | } | ... | ... |
src/main/java/com/bsth/data/LineVersionsData.java
| 1 | -package com.bsth.data; | |
| 2 | - | |
| 3 | -import com.bsth.entity.LineVersions; | |
| 4 | -import com.bsth.service.LineVersionsService; | |
| 5 | -import com.bsth.service.StationRouteService; | |
| 6 | -import org.slf4j.Logger; | |
| 7 | -import org.slf4j.LoggerFactory; | |
| 8 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | -import org.springframework.core.annotation.Order; | |
| 10 | -import org.springframework.stereotype.Component; | |
| 11 | - | |
| 12 | -import java.util.HashMap; | |
| 13 | -import java.util.List; | |
| 14 | -import java.util.Map; | |
| 15 | - | |
| 16 | -/** | |
| 17 | - * @ClassName: LineVersionsData | |
| 18 | - * @Description: TODO(线路版本数据管理) | |
| 19 | - */ | |
| 20 | -@Component | |
| 21 | -@Order(20) | |
| 22 | -public class LineVersionsData extends Thread { | |
| 23 | - | |
| 24 | - static Logger logger = LoggerFactory.getLogger(LineVersionsData.class); | |
| 25 | - | |
| 26 | - @Autowired | |
| 27 | - LineVersionsService lineVersionsService; | |
| 28 | - | |
| 29 | - @Autowired | |
| 30 | - StationRouteService stationRouteService; | |
| 31 | - | |
| 32 | - @Override | |
| 33 | - public void run() { | |
| 34 | - try { | |
| 35 | - List<LineVersions> list = lineVersionsService.lineUpdate(); | |
| 36 | - if(list.size() == 0){ | |
| 37 | - logger.info("没有需要更新的线路!"); | |
| 38 | - return; | |
| 39 | - } | |
| 40 | - for (LineVersions lineVersions : list) { | |
| 41 | - Integer lineId = lineVersions.getLine().getId(); | |
| 42 | - // 更新线路文件 | |
| 43 | - Map<String, Object> map = new HashMap<>(); | |
| 44 | - map.put("lineId", lineId); | |
| 45 | - stationRouteService.usingSingle(map); | |
| 46 | - logger.info("线路版本更新成功!"); | |
| 47 | - } | |
| 48 | - } catch (Exception e) { | |
| 49 | - e.printStackTrace(); | |
| 50 | - logger.error("线路版本更新出现异常!", e); | |
| 51 | - } | |
| 52 | - } | |
| 53 | -} | |
| 1 | +package com.bsth.data; | |
| 2 | + | |
| 3 | +import com.bsth.entity.LineVersions; | |
| 4 | +import com.bsth.service.LineVersionsService; | |
| 5 | +import com.bsth.service.StationRouteService; | |
| 6 | +import org.slf4j.Logger; | |
| 7 | +import org.slf4j.LoggerFactory; | |
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | +import org.springframework.core.annotation.Order; | |
| 10 | +import org.springframework.stereotype.Component; | |
| 11 | + | |
| 12 | +import java.util.HashMap; | |
| 13 | +import java.util.List; | |
| 14 | +import java.util.Map; | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * @ClassName: LineVersionsData | |
| 18 | + * @Description: TODO(线路版本数据管理) | |
| 19 | + */ | |
| 20 | +@Component | |
| 21 | +@Order(20) | |
| 22 | +public class LineVersionsData extends Thread { | |
| 23 | + | |
| 24 | + static Logger logger = LoggerFactory.getLogger(LineVersionsData.class); | |
| 25 | + | |
| 26 | + @Autowired | |
| 27 | + LineVersionsService lineVersionsService; | |
| 28 | + | |
| 29 | + @Autowired | |
| 30 | + StationRouteService stationRouteService; | |
| 31 | + | |
| 32 | + @Override | |
| 33 | + public void run() { | |
| 34 | + logger.warn("线路版本更新开始"); | |
| 35 | + try { | |
| 36 | + List<LineVersions> list = lineVersionsService.lineUpdate(); | |
| 37 | + if(list.size() == 0){ | |
| 38 | + logger.info("没有需要更新的线路!"); | |
| 39 | + return; | |
| 40 | + } | |
| 41 | + for (LineVersions lineVersions : list) { | |
| 42 | + Integer lineId = lineVersions.getLine().getId(); | |
| 43 | + // 更新线路文件 | |
| 44 | + Map<String, Object> map = new HashMap<>(); | |
| 45 | + map.put("lineId", lineId); | |
| 46 | + stationRouteService.usingSingle(map); | |
| 47 | + logger.info("线路版本更新成功!"); | |
| 48 | + } | |
| 49 | + } catch (Exception e) { | |
| 50 | + e.printStackTrace(); | |
| 51 | + logger.error("线路版本更新出现异常!", e); | |
| 52 | + } | |
| 53 | + logger.warn("线路版本更新结束"); | |
| 54 | + } | |
| 55 | +} | ... | ... |
src/main/java/com/bsth/data/car_out_info/CarOutInfoHandler.java
| 1 | -package com.bsth.data.car_out_info; | |
| 2 | - | |
| 3 | -import com.bsth.data.BasicData; | |
| 4 | -import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | |
| 5 | -import com.bsth.data.gpsdata_v2.entity.StationRoute; | |
| 6 | -import com.bsth.data.schedule.DayOfSchedule; | |
| 7 | -import com.bsth.data.schedule.ScheduleComparator; | |
| 8 | -import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 9 | -import com.google.common.collect.ArrayListMultimap; | |
| 10 | -import org.apache.commons.lang3.StringUtils; | |
| 11 | -import org.slf4j.Logger; | |
| 12 | -import org.slf4j.LoggerFactory; | |
| 13 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 14 | -import org.springframework.jdbc.core.BatchPreparedStatementSetter; | |
| 15 | -import org.springframework.jdbc.core.JdbcTemplate; | |
| 16 | -import org.springframework.jdbc.datasource.DataSourceTransactionManager; | |
| 17 | -import org.springframework.stereotype.Component; | |
| 18 | -import org.springframework.transaction.TransactionDefinition; | |
| 19 | -import org.springframework.transaction.TransactionStatus; | |
| 20 | -import org.springframework.transaction.support.DefaultTransactionDefinition; | |
| 21 | - | |
| 22 | -import java.sql.PreparedStatement; | |
| 23 | -import java.sql.SQLException; | |
| 24 | -import java.util.*; | |
| 25 | - | |
| 26 | -/** | |
| 27 | - * 发车信息表处理程序 | |
| 28 | - * Created by panzhao on 2017/5/5. | |
| 29 | - */ | |
| 30 | -@Component | |
| 31 | -public class CarOutInfoHandler { | |
| 32 | - | |
| 33 | - @Autowired | |
| 34 | - DayOfSchedule dayOfSchedule; | |
| 35 | - | |
| 36 | - //班次类型对照表 | |
| 37 | - static Map<String, String> bcTypeMap; | |
| 38 | - | |
| 39 | - static{ | |
| 40 | - bcTypeMap = new HashMap<>(); | |
| 41 | - bcTypeMap.put("normal", "正常班次"); | |
| 42 | - bcTypeMap.put("region", "区间"); | |
| 43 | - bcTypeMap.put("venting", "直放"); | |
| 44 | - bcTypeMap.put("major", "放站"); | |
| 45 | - bcTypeMap.put("ldks", "两点间空驶"); | |
| 46 | - } | |
| 47 | - | |
| 48 | - private static ScheduleComparator.DFSJ2 schDFSJComparator = new ScheduleComparator.DFSJ2(); | |
| 49 | - | |
| 50 | - @Autowired | |
| 51 | - JdbcTemplate jdbcTemplate; | |
| 52 | - | |
| 53 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 54 | - | |
| 55 | - | |
| 56 | - ArrayListMultimap<String, ScheduleRealInfo> xlMaps = ArrayListMultimap.create(); | |
| 57 | - List<ScheduleRealInfo> pstList = new ArrayList<>(); | |
| 58 | - /** | |
| 59 | - * 全量更新发车信息表 | |
| 60 | - */ | |
| 61 | - public void updateAll() { | |
| 62 | - try{ | |
| 63 | - //将班次按线路分组 | |
| 64 | - List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()); | |
| 65 | - for(ScheduleRealInfo sch : all){ | |
| 66 | - xlMaps.put(sch.getXlBm(), sch); | |
| 67 | - } | |
| 68 | - | |
| 69 | - Set<String> ks = xlMaps.keySet(); | |
| 70 | - for (String k : ks) { | |
| 71 | - pstList.addAll(update(xlMaps.get(k))); | |
| 72 | - } | |
| 73 | - | |
| 74 | - save(pstList); | |
| 75 | - pstList.clear(); | |
| 76 | - xlMaps.clear(); | |
| 77 | - }catch (Exception e){ | |
| 78 | - logger.error("", e); | |
| 79 | - } | |
| 80 | - } | |
| 81 | - | |
| 82 | - public List<ScheduleRealInfo> update(List<ScheduleRealInfo> list) { | |
| 83 | - if (list.size() == 0) | |
| 84 | - return new ArrayList<>(); | |
| 85 | - //按上下行分组 | |
| 86 | - List<ScheduleRealInfo> ups = new ArrayList<>(), downs = new ArrayList<>(); | |
| 87 | - for (ScheduleRealInfo sch : list) { | |
| 88 | - if (sch.getXlDir().equals("0")) | |
| 89 | - ups.add(sch); | |
| 90 | - else | |
| 91 | - downs.add(sch); | |
| 92 | - } | |
| 93 | - | |
| 94 | - ScheduleRealInfo[] upArray = nexts(ups), | |
| 95 | - downArray = nexts(downs); | |
| 96 | - | |
| 97 | - List<ScheduleRealInfo> pstArray = mergeArray(upArray, downArray); | |
| 98 | - | |
| 99 | - return pstArray; | |
| 100 | - } | |
| 101 | - | |
| 102 | - private void save(final List<ScheduleRealInfo> pstList){ | |
| 103 | - //编程式事务 | |
| 104 | - DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 105 | - DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 106 | - def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 107 | - TransactionStatus status = tran.getTransaction(def); | |
| 108 | - | |
| 109 | - try{ | |
| 110 | - //删除 | |
| 111 | - jdbcTemplate.update("delete from bsth_t_clfcxxb"); | |
| 112 | - //重新写入 | |
| 113 | - jdbcTemplate.batchUpdate("insert into bsth_t_clfcxxb(rq, line_code, line_name, lp_name, lp_sn, dfsj, nbbm, cph, bc_type, end_station_name, updown, jGh, jName, remarks, sn)" + | |
| 114 | - " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", new BatchPreparedStatementSetter() { | |
| 115 | - @Override | |
| 116 | - public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 117 | - ScheduleRealInfo sch = pstList.get(i); | |
| 118 | - ps.setString(1, sch.getScheduleDateStr()); | |
| 119 | - ps.setString(2, sch.getXlBm()); | |
| 120 | - ps.setString(3, sch.getXlName()); | |
| 121 | - ps.setString(4, /*sch.getLpName()*/"0"); | |
| 122 | - ps.setInt(5, sch.getFcno()==null?-1:sch.getFcno()); | |
| 123 | - ps.setString(6, sch.getDfsj().replace(":", "")); | |
| 124 | - ps.setString(7, sch.getClZbh().replace("-", "")); | |
| 125 | - ps.setString(8, BasicData.nbbmCompanyPlateMap.get(sch.getClZbh())); | |
| 126 | - ps.setString(9, bcTypeMap.containsKey(sch.getBcType()) ? bcTypeMap.get(sch.getBcType()) : sch.getBcType()); | |
| 127 | - ps.setString(10, sch.getZdzName()); | |
| 128 | - ps.setInt(11, Integer.parseInt(sch.getXlDir())); | |
| 129 | - ps.setString(12, sch.getjGh()); | |
| 130 | - ps.setString(13, sch.getjName()); | |
| 131 | - ps.setString(14, sch.getRemarks()); | |
| 132 | - ps.setInt(15, sch.getFcpSn()); | |
| 133 | - } | |
| 134 | - | |
| 135 | - @Override | |
| 136 | - public int getBatchSize() { | |
| 137 | - return pstList.size(); | |
| 138 | - } | |
| 139 | - }); | |
| 140 | - | |
| 141 | - tran.commit(status); | |
| 142 | - }catch (Exception e){ | |
| 143 | - tran.rollback(status); | |
| 144 | - } | |
| 145 | - } | |
| 146 | - | |
| 147 | - private List<ScheduleRealInfo> mergeArray(ScheduleRealInfo[] upArray, ScheduleRealInfo[] downArray) { | |
| 148 | - List<ScheduleRealInfo> list = new ArrayList<>(); | |
| 149 | - for (int i = 0; i < upArray.length; i++) { | |
| 150 | - if (upArray[i] != null) { | |
| 151 | - upArray[i].setFcpSn(i + 1); | |
| 152 | - list.add(upArray[i]); | |
| 153 | - } | |
| 154 | - } | |
| 155 | - for (int i = 0; i < downArray.length; i++) { | |
| 156 | - if (downArray[i] != null) { | |
| 157 | - downArray[i].setFcpSn(i + 1); | |
| 158 | - list.add(downArray[i]); | |
| 159 | - } | |
| 160 | - } | |
| 161 | - return list; | |
| 162 | - } | |
| 163 | - | |
| 164 | - /** | |
| 165 | - * 接下来要执行的3个班次 | |
| 166 | - * | |
| 167 | - * @param list | |
| 168 | - * @return | |
| 169 | - */ | |
| 170 | - private static String[] fls = new String[]{"in","out","ldks","venting","major"}; | |
| 171 | - private static List<String> clearTypes; | |
| 172 | - static { | |
| 173 | - clearTypes = Arrays.asList(fls); | |
| 174 | - } | |
| 175 | - private ScheduleRealInfo[] nexts(List<ScheduleRealInfo> list) { | |
| 176 | - ScheduleRealInfo[] array = new ScheduleRealInfo[3]; | |
| 177 | - Collections.sort(list, schDFSJComparator); | |
| 178 | - | |
| 179 | - int count = 0;//, threshold = 1000 * 60 * 60 * 4; | |
| 180 | - //long t = System.currentTimeMillis(); | |
| 181 | - for (ScheduleRealInfo sch : list) { | |
| 182 | - if (count == 3) | |
| 183 | - break; | |
| 184 | - | |
| 185 | - //烂班 | |
| 186 | - if (sch.isDestroy()) | |
| 187 | - continue; | |
| 188 | - | |
| 189 | - //进场、出场、2点间空驶 | |
| 190 | - if (clearTypes.contains(sch.getBcType())) | |
| 191 | - continue; | |
| 192 | - | |
| 193 | - //区间 | |
| 194 | - if (sch.getBcType().equals("region")){ | |
| 195 | - //是否起点发出 | |
| 196 | - if(!isStartOut(sch)) | |
| 197 | - continue; | |
| 198 | - } | |
| 199 | - | |
| 200 | - //有实发实达时间的 | |
| 201 | - if (StringUtils.isNotEmpty(sch.getFcsjActual()) | |
| 202 | - || StringUtils.isNotEmpty(sch.getZdsjActual())) | |
| 203 | - continue; | |
| 204 | - | |
| 205 | - /*if (t - sch.getDfsjT() > threshold) | |
| 206 | - continue;*/ | |
| 207 | - | |
| 208 | - array[count] = sch; | |
| 209 | - count++; | |
| 210 | - } | |
| 211 | - return array; | |
| 212 | - } | |
| 213 | - | |
| 214 | - private static StationRouteComp sComp = new StationRouteComp(); | |
| 215 | - private boolean isStartOut(ScheduleRealInfo sch) { | |
| 216 | - try{ | |
| 217 | - List<StationRoute> list = GeoCacheData.getStationRoute(sch.getXlBm(), Integer.parseInt(sch.getXlDir())); | |
| 218 | - | |
| 219 | - if(null == list && list.size() == 0) | |
| 220 | - return false; | |
| 221 | - //排序 | |
| 222 | - Collections.sort(list, sComp); | |
| 223 | - | |
| 224 | - if(sch.getQdzName().equals(list.get(0).getName())) | |
| 225 | - return true; | |
| 226 | - }catch (Exception e){ | |
| 227 | - logger.error("", e); | |
| 228 | - } | |
| 229 | - return false; | |
| 230 | - } | |
| 231 | - | |
| 232 | - private static class StationRouteComp implements Comparator<StationRoute> { | |
| 233 | - | |
| 234 | - @Override | |
| 235 | - public int compare(StationRoute s1, StationRoute s2) { | |
| 236 | - return s1.getRouteSort() - s2.getRouteSort(); | |
| 237 | - } | |
| 238 | - } | |
| 239 | -} | |
| 1 | +package com.bsth.data.car_out_info; | |
| 2 | + | |
| 3 | +import com.bsth.data.BasicData; | |
| 4 | +import com.bsth.data.gpsdata_v2.cache.GeoCacheData; | |
| 5 | +import com.bsth.data.gpsdata_v2.entity.StationRoute; | |
| 6 | +import com.bsth.data.schedule.DayOfSchedule; | |
| 7 | +import com.bsth.data.schedule.ScheduleComparator; | |
| 8 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | |
| 9 | +import com.fasterxml.jackson.core.JsonProcessingException; | |
| 10 | +import com.fasterxml.jackson.databind.ObjectMapper; | |
| 11 | +import com.google.common.collect.ArrayListMultimap; | |
| 12 | +import org.apache.commons.lang3.StringUtils; | |
| 13 | +import org.slf4j.Logger; | |
| 14 | +import org.slf4j.LoggerFactory; | |
| 15 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 16 | +import org.springframework.jdbc.core.BatchPreparedStatementSetter; | |
| 17 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 18 | +import org.springframework.stereotype.Component; | |
| 19 | +import org.springframework.transaction.TransactionStatus; | |
| 20 | +import org.springframework.transaction.support.TransactionCallbackWithoutResult; | |
| 21 | +import org.springframework.transaction.support.TransactionTemplate; | |
| 22 | + | |
| 23 | +import java.sql.PreparedStatement; | |
| 24 | +import java.sql.SQLException; | |
| 25 | +import java.util.*; | |
| 26 | + | |
| 27 | +/** | |
| 28 | + * 发车信息表处理程序 | |
| 29 | + * Created by panzhao on 2017/5/5. | |
| 30 | + */ | |
| 31 | +@Component | |
| 32 | +public class CarOutInfoHandler { | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + DayOfSchedule dayOfSchedule; | |
| 36 | + | |
| 37 | + //班次类型对照表 | |
| 38 | + static Map<String, String> bcTypeMap; | |
| 39 | + | |
| 40 | + static{ | |
| 41 | + bcTypeMap = new HashMap<>(); | |
| 42 | + bcTypeMap.put("normal", "正常班次"); | |
| 43 | + bcTypeMap.put("region", "区间"); | |
| 44 | + bcTypeMap.put("venting", "直放"); | |
| 45 | + bcTypeMap.put("major", "放站"); | |
| 46 | + bcTypeMap.put("ldks", "两点间空驶"); | |
| 47 | + } | |
| 48 | + | |
| 49 | + private static ScheduleComparator.DFSJ2 schDFSJComparator = new ScheduleComparator.DFSJ2(); | |
| 50 | + | |
| 51 | + @Autowired | |
| 52 | + JdbcTemplate jdbcTemplate; | |
| 53 | + | |
| 54 | + @Autowired | |
| 55 | + private TransactionTemplate transactionTemplate; | |
| 56 | + | |
| 57 | + @Autowired | |
| 58 | + private ObjectMapper mapper; | |
| 59 | + | |
| 60 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 61 | + | |
| 62 | + | |
| 63 | + ArrayListMultimap<String, ScheduleRealInfo> xlMaps = ArrayListMultimap.create(); | |
| 64 | + List<ScheduleRealInfo> pstList = new ArrayList<>(); | |
| 65 | + /** | |
| 66 | + * 全量更新发车信息表 | |
| 67 | + */ | |
| 68 | + public void updateAll() { | |
| 69 | + logger.warn("发车信息更新开始"); | |
| 70 | + try{ | |
| 71 | + //将班次按线路分组 | |
| 72 | + List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()); | |
| 73 | + for(ScheduleRealInfo sch : all){ | |
| 74 | + xlMaps.put(sch.getXlBm(), sch); | |
| 75 | + } | |
| 76 | + | |
| 77 | + Set<String> ks = xlMaps.keySet(); | |
| 78 | + for (String k : ks) { | |
| 79 | + pstList.addAll(update(xlMaps.get(k))); | |
| 80 | + } | |
| 81 | + | |
| 82 | + save(pstList); | |
| 83 | + pstList.clear(); | |
| 84 | + xlMaps.clear(); | |
| 85 | + }catch (Exception e){ | |
| 86 | + logger.error("", e); | |
| 87 | + } | |
| 88 | + logger.warn("发车信息更新结束"); | |
| 89 | + } | |
| 90 | + | |
| 91 | + public List<ScheduleRealInfo> update(List<ScheduleRealInfo> list) { | |
| 92 | + if (list.size() == 0) | |
| 93 | + return new ArrayList<>(); | |
| 94 | + //按上下行分组 | |
| 95 | + List<ScheduleRealInfo> ups = new ArrayList<>(), downs = new ArrayList<>(); | |
| 96 | + for (ScheduleRealInfo sch : list) { | |
| 97 | + if (sch.getXlDir().equals("0")) | |
| 98 | + ups.add(sch); | |
| 99 | + else | |
| 100 | + downs.add(sch); | |
| 101 | + } | |
| 102 | + | |
| 103 | + ScheduleRealInfo[] upArray = nexts(ups), | |
| 104 | + downArray = nexts(downs); | |
| 105 | + | |
| 106 | + List<ScheduleRealInfo> pstArray = mergeArray(upArray, downArray); | |
| 107 | + | |
| 108 | + return pstArray; | |
| 109 | + } | |
| 110 | + | |
| 111 | + private void save(final List<ScheduleRealInfo> pstList){ | |
| 112 | + transactionTemplate.execute(new TransactionCallbackWithoutResult() { | |
| 113 | + | |
| 114 | + @Override | |
| 115 | + public void doInTransactionWithoutResult(TransactionStatus status) { | |
| 116 | + try { | |
| 117 | + //删除 | |
| 118 | + jdbcTemplate.update("delete from bsth_t_clfcxxb"); | |
| 119 | + //重新写入 | |
| 120 | + jdbcTemplate.batchUpdate("insert into bsth_t_clfcxxb(rq, line_code, line_name, lp_name, lp_sn, dfsj, nbbm, cph, bc_type, end_station_name, updown, jGh, jName, remarks, sn)" + | |
| 121 | + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", new BatchPreparedStatementSetter() { | |
| 122 | + @Override | |
| 123 | + public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 124 | + ScheduleRealInfo sch = pstList.get(i); | |
| 125 | + ps.setString(1, sch.getScheduleDateStr()); | |
| 126 | + ps.setString(2, sch.getXlBm()); | |
| 127 | + ps.setString(3, sch.getXlName()); | |
| 128 | + ps.setString(4, /*sch.getLpName()*/"0"); | |
| 129 | + ps.setInt(5, sch.getFcno()==null?-1:sch.getFcno()); | |
| 130 | + ps.setString(6, sch.getDfsj().replace(":", "")); | |
| 131 | + ps.setString(7, sch.getClZbh().replace("-", "")); | |
| 132 | + ps.setString(8, BasicData.nbbmCompanyPlateMap.get(sch.getClZbh())); | |
| 133 | + ps.setString(9, bcTypeMap.containsKey(sch.getBcType()) ? bcTypeMap.get(sch.getBcType()) : sch.getBcType()); | |
| 134 | + ps.setString(10, sch.getZdzName()); | |
| 135 | + ps.setInt(11, Integer.parseInt(sch.getXlDir())); | |
| 136 | + ps.setString(12, sch.getjGh()); | |
| 137 | + ps.setString(13, sch.getjName()); | |
| 138 | + ps.setString(14, sch.getRemarks()); | |
| 139 | + ps.setInt(15, sch.getFcpSn()); | |
| 140 | + } | |
| 141 | + | |
| 142 | + @Override | |
| 143 | + public int getBatchSize() { | |
| 144 | + return pstList.size(); | |
| 145 | + } | |
| 146 | + }); | |
| 147 | + } catch (Exception e) { | |
| 148 | + status.setRollbackOnly(); | |
| 149 | + try { | |
| 150 | + logger.error(String.format("发车信息批量保存异常: %s", mapper.writeValueAsString(pstList)), e); | |
| 151 | + } catch (JsonProcessingException jsonProcessingException) { | |
| 152 | + jsonProcessingException.printStackTrace(); | |
| 153 | + } | |
| 154 | + } | |
| 155 | + } | |
| 156 | + }); | |
| 157 | + } | |
| 158 | + | |
| 159 | + private List<ScheduleRealInfo> mergeArray(ScheduleRealInfo[] upArray, ScheduleRealInfo[] downArray) { | |
| 160 | + List<ScheduleRealInfo> list = new ArrayList<>(); | |
| 161 | + for (int i = 0; i < upArray.length; i++) { | |
| 162 | + if (upArray[i] != null) { | |
| 163 | + upArray[i].setFcpSn(i + 1); | |
| 164 | + list.add(upArray[i]); | |
| 165 | + } | |
| 166 | + } | |
| 167 | + for (int i = 0; i < downArray.length; i++) { | |
| 168 | + if (downArray[i] != null) { | |
| 169 | + downArray[i].setFcpSn(i + 1); | |
| 170 | + list.add(downArray[i]); | |
| 171 | + } | |
| 172 | + } | |
| 173 | + return list; | |
| 174 | + } | |
| 175 | + | |
| 176 | + /** | |
| 177 | + * 接下来要执行的3个班次 | |
| 178 | + * | |
| 179 | + * @param list | |
| 180 | + * @return | |
| 181 | + */ | |
| 182 | + private static String[] fls = new String[]{"in","out","ldks","venting","major"}; | |
| 183 | + private static List<String> clearTypes; | |
| 184 | + static { | |
| 185 | + clearTypes = Arrays.asList(fls); | |
| 186 | + } | |
| 187 | + private ScheduleRealInfo[] nexts(List<ScheduleRealInfo> list) { | |
| 188 | + ScheduleRealInfo[] array = new ScheduleRealInfo[3]; | |
| 189 | + Collections.sort(list, schDFSJComparator); | |
| 190 | + | |
| 191 | + int count = 0;//, threshold = 1000 * 60 * 60 * 4; | |
| 192 | + //long t = System.currentTimeMillis(); | |
| 193 | + for (ScheduleRealInfo sch : list) { | |
| 194 | + if (count == 3) | |
| 195 | + break; | |
| 196 | + | |
| 197 | + //烂班 | |
| 198 | + if (sch.isDestroy()) | |
| 199 | + continue; | |
| 200 | + | |
| 201 | + //进场、出场、2点间空驶 | |
| 202 | + if (clearTypes.contains(sch.getBcType())) | |
| 203 | + continue; | |
| 204 | + | |
| 205 | + //区间 | |
| 206 | + if (sch.getBcType().equals("region")){ | |
| 207 | + //是否起点发出 | |
| 208 | + if(!isStartOut(sch)) | |
| 209 | + continue; | |
| 210 | + } | |
| 211 | + | |
| 212 | + //有实发实达时间的 | |
| 213 | + if (StringUtils.isNotEmpty(sch.getFcsjActual()) | |
| 214 | + || StringUtils.isNotEmpty(sch.getZdsjActual())) | |
| 215 | + continue; | |
| 216 | + | |
| 217 | + /*if (t - sch.getDfsjT() > threshold) | |
| 218 | + continue;*/ | |
| 219 | + | |
| 220 | + array[count] = sch; | |
| 221 | + count++; | |
| 222 | + } | |
| 223 | + return array; | |
| 224 | + } | |
| 225 | + | |
| 226 | + private static StationRouteComp sComp = new StationRouteComp(); | |
| 227 | + private boolean isStartOut(ScheduleRealInfo sch) { | |
| 228 | + try{ | |
| 229 | + List<StationRoute> list = GeoCacheData.getStationRoute(sch.getXlBm(), Integer.parseInt(sch.getXlDir())); | |
| 230 | + | |
| 231 | + if(null == list && list.size() == 0) | |
| 232 | + return false; | |
| 233 | + //排序 | |
| 234 | + Collections.sort(list, sComp); | |
| 235 | + | |
| 236 | + if(sch.getQdzName().equals(list.get(0).getName())) | |
| 237 | + return true; | |
| 238 | + }catch (Exception e){ | |
| 239 | + logger.error("", e); | |
| 240 | + } | |
| 241 | + return false; | |
| 242 | + } | |
| 243 | + | |
| 244 | + private static class StationRouteComp implements Comparator<StationRoute> { | |
| 245 | + | |
| 246 | + @Override | |
| 247 | + public int compare(StationRoute s1, StationRoute s2) { | |
| 248 | + return s1.getRouteSort() - s2.getRouteSort(); | |
| 249 | + } | |
| 250 | + } | |
| 251 | +} | ... | ... |
src/main/java/com/bsth/data/directive/DirectivesPstThread.java
| 1 | -package com.bsth.data.directive; | |
| 2 | - | |
| 3 | -import com.alibaba.fastjson.JSON; | |
| 4 | -import com.bsth.data.schedule.DayOfSchedule; | |
| 5 | -import com.bsth.entity.directive.D60; | |
| 6 | -import com.bsth.entity.directive.D64; | |
| 7 | -import com.bsth.entity.directive.Directive; | |
| 8 | -import com.bsth.repository.directive.D60Repository; | |
| 9 | -import com.bsth.repository.directive.D64Repository; | |
| 10 | -import org.joda.time.format.DateTimeFormat; | |
| 11 | -import org.joda.time.format.DateTimeFormatter; | |
| 12 | -import org.slf4j.Logger; | |
| 13 | -import org.slf4j.LoggerFactory; | |
| 14 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | -import org.springframework.jdbc.core.BatchPreparedStatementSetter; | |
| 16 | -import org.springframework.jdbc.core.JdbcTemplate; | |
| 17 | -import org.springframework.jdbc.datasource.DataSourceTransactionManager; | |
| 18 | -import org.springframework.stereotype.Component; | |
| 19 | -import org.springframework.transaction.TransactionDefinition; | |
| 20 | -import org.springframework.transaction.TransactionStatus; | |
| 21 | -import org.springframework.transaction.support.DefaultTransactionDefinition; | |
| 22 | - | |
| 23 | -import java.sql.PreparedStatement; | |
| 24 | -import java.sql.SQLException; | |
| 25 | -import java.sql.Types; | |
| 26 | -import java.util.ArrayList; | |
| 27 | -import java.util.List; | |
| 28 | -import java.util.concurrent.ConcurrentLinkedQueue; | |
| 29 | - | |
| 30 | -/** | |
| 31 | - * 指令持久化线程 | |
| 32 | - * Created by panzhao on 2017/3/6. | |
| 33 | - */ | |
| 34 | -@Component | |
| 35 | -public class DirectivesPstThread extends Thread { | |
| 36 | - | |
| 37 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 38 | - | |
| 39 | - @Autowired | |
| 40 | - D60Repository d60Repository; | |
| 41 | - | |
| 42 | - @Autowired | |
| 43 | - D64Repository d64Repository; | |
| 44 | - | |
| 45 | - @Autowired | |
| 46 | - DayOfSchedule dayOfSchedule; | |
| 47 | - | |
| 48 | - @Autowired | |
| 49 | - JdbcTemplate jdbcTemplate; | |
| 50 | - | |
| 51 | - private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); | |
| 52 | - | |
| 53 | - @Override | |
| 54 | - public void run() { | |
| 55 | - try{ | |
| 56 | - ConcurrentLinkedQueue<Directive> list = DayOfDirectives.pstDirectives; | |
| 57 | - | |
| 58 | - List<D60> d60s = new ArrayList<>(); | |
| 59 | - List<D64> d64s = new ArrayList<>(); | |
| 60 | - //按 60 和 64 分组 | |
| 61 | - Directive directive; | |
| 62 | - D60 d60; | |
| 63 | - for (int i = 0; i < 2000; i++) { | |
| 64 | - directive = list.poll(); | |
| 65 | - if(null == directive) | |
| 66 | - break; | |
| 67 | - | |
| 68 | - //日期 | |
| 69 | - directive.setRq(fmtyyyyMMdd.print(directive.getTimestamp())); | |
| 70 | - | |
| 71 | - if (directive instanceof D60) { | |
| 72 | - d60 = (D60) directive; | |
| 73 | - if(isDelete(d60)) | |
| 74 | - continue; | |
| 75 | - d60s.add(d60); | |
| 76 | - } | |
| 77 | - else if(directive instanceof D64) | |
| 78 | - d64s.add((D64) directive); | |
| 79 | - } | |
| 80 | - | |
| 81 | - //入库60 | |
| 82 | - save60(d60s); | |
| 83 | - //入库64 | |
| 84 | - save64(d64s); | |
| 85 | - | |
| 86 | - | |
| 87 | - // 60 指令更新(车载响应) | |
| 88 | - ConcurrentLinkedQueue<D60> updateD60s = DayOfDirectives.pstD60s; | |
| 89 | - d60s = new ArrayList<>(); | |
| 90 | - for (int i = 0; i < 2000; i++) { | |
| 91 | - d60 = updateD60s.poll(); | |
| 92 | - if(null == d60) | |
| 93 | - break; | |
| 94 | - d60s.add(d60); | |
| 95 | - } | |
| 96 | - | |
| 97 | - if(d60s.size() > 0) | |
| 98 | - update60(d60s); | |
| 99 | - }catch (Exception e){ | |
| 100 | - logger.error("指令入库出现异常", e); | |
| 101 | - } | |
| 102 | - } | |
| 103 | - | |
| 104 | - private void save64(final List<D64> d64s) { | |
| 105 | - if(null == d64s || d64s.size() == 0) | |
| 106 | - return; | |
| 107 | - | |
| 108 | - String sql = "insert into bsth_v_directive_64(device_id,error_text,http_code,oper_code,rq,sender,timestamp,city_code,line_id,txt_content,resp_ack) " + | |
| 109 | - " values(?,?,?,?,?,?,?,?,?,?,?)"; | |
| 110 | - | |
| 111 | - //编程式事务 | |
| 112 | - DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 113 | - DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 114 | - def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 115 | - TransactionStatus status = tran.getTransaction(def); | |
| 116 | - | |
| 117 | - try{ | |
| 118 | - jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | |
| 119 | - @Override | |
| 120 | - public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 121 | - D64 d64 = d64s.get(i); | |
| 122 | - ps.setString(1 , d64.getDeviceId()); | |
| 123 | - ps.setString(2, isNvl(d64.getErrorText())); | |
| 124 | - ps.setInt(3, d64.getHttpCode()); | |
| 125 | - ps.setShort(4, isNvl(d64.getOperCode())); | |
| 126 | - ps.setString(5, d64.getRq()); | |
| 127 | - | |
| 128 | - ps.setString(6, isNvl(d64.getSender())); | |
| 129 | - ps.setLong(7, d64.getTimestamp()); | |
| 130 | - | |
| 131 | - ps.setShort(8, isNvl(d64.getData().getCityCode())); | |
| 132 | - ps.setString(9, isNvl(d64.getData().getLineId())); | |
| 133 | - ps.setString(10, isNvl(d64.getData().getTxtContent())); | |
| 134 | - ps.setShort(11, isNvl(d64.getRespAck())); | |
| 135 | - } | |
| 136 | - | |
| 137 | - @Override | |
| 138 | - public int getBatchSize() { | |
| 139 | - return d64s.size(); | |
| 140 | - } | |
| 141 | - }); | |
| 142 | - | |
| 143 | - tran.commit(status); | |
| 144 | - | |
| 145 | - logger.info("64 入库成功: " + d64s.size()); | |
| 146 | - }catch (Exception e){ | |
| 147 | - tran.rollback(status); | |
| 148 | - logger.error("", e); | |
| 149 | - logger.warn("失败的数据:" + JSON.toJSONString(d64s)); | |
| 150 | - } | |
| 151 | - } | |
| 152 | - | |
| 153 | - private void update60(final List<D60> d60s) { | |
| 154 | - if(null == d60s || d60s.size() == 0) | |
| 155 | - return; | |
| 156 | - | |
| 157 | - String sql = "update bsth_v_directive_60 set reply46=?,reply46time=?,reply47=?,reply47time=? where device_id=? and timestamp=? and msg_id=?"; | |
| 158 | - | |
| 159 | - //编程式事务 | |
| 160 | - DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 161 | - DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 162 | - def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 163 | - TransactionStatus status = tran.getTransaction(def); | |
| 164 | - | |
| 165 | - try{ | |
| 166 | - jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | |
| 167 | - @Override | |
| 168 | - public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 169 | - D60 d60 = d60s.get(i); | |
| 170 | - ps.setShort(1, isNvl(d60.getReply46())); | |
| 171 | - if(null == d60.getReply46Time()) | |
| 172 | - ps.setNull(2, Types.BIGINT); | |
| 173 | - else | |
| 174 | - ps.setLong(2, d60.getReply46Time()); | |
| 175 | - | |
| 176 | - ps.setShort(3, isNvl(d60.getReply47())); | |
| 177 | - | |
| 178 | - if(null == d60.getReply47Time()) | |
| 179 | - ps.setNull(4, Types.BIGINT); | |
| 180 | - else | |
| 181 | - ps.setLong(4, d60.getReply47Time()); | |
| 182 | - ps.setString(5, d60.getDeviceId()); | |
| 183 | - ps.setLong(6, d60.getTimestamp()); | |
| 184 | - ps.setInt(7, d60.getMsgId()); | |
| 185 | - } | |
| 186 | - | |
| 187 | - @Override | |
| 188 | - public int getBatchSize() { | |
| 189 | - return d60s.size(); | |
| 190 | - } | |
| 191 | - }); | |
| 192 | - | |
| 193 | - tran.commit(status); | |
| 194 | - | |
| 195 | - logger.info("60 更新成功: " + d60s.size()); | |
| 196 | - }catch (Exception e){ | |
| 197 | - tran.rollback(status); | |
| 198 | - logger.error("", e); | |
| 199 | - logger.warn("失败的数据:" + JSON.toJSONString(d60s)); | |
| 200 | - } | |
| 201 | - } | |
| 202 | - | |
| 203 | - private void save60(final List<D60> d60s) { | |
| 204 | - if(null == d60s || d60s.size() == 0) | |
| 205 | - return; | |
| 206 | - | |
| 207 | - String sql = "insert into bsth_v_directive_60(device_id,error_text,http_code,oper_code,rq,sender,timestamp" + | |
| 208 | - ",alarm_time,company_code,dispatch_instruct,instruct_type,msg_id,service_state,txt_content,is_dispatch" + | |
| 209 | - ",line_code,reply46,reply46time,reply47,reply47time,sch) " + | |
| 210 | - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; | |
| 211 | - | |
| 212 | - //编程式事务 | |
| 213 | - DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 214 | - DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 215 | - def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 216 | - TransactionStatus status = tran.getTransaction(def); | |
| 217 | - | |
| 218 | - try{ | |
| 219 | - jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | |
| 220 | - @Override | |
| 221 | - public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 222 | - D60 d60 = d60s.get(i); | |
| 223 | - ps.setString(1, d60.getDeviceId()); | |
| 224 | - ps.setString(2, isNvl(d60.getErrorText())); | |
| 225 | - ps.setInt(3, d60.getHttpCode()); | |
| 226 | - ps.setShort(4, d60.getOperCode()); | |
| 227 | - ps.setString(5, d60.getRq()); | |
| 228 | - ps.setString(6, d60.getSender()); | |
| 229 | - ps.setLong(7, d60.getTimestamp()); | |
| 230 | - | |
| 231 | - ps.setLong(8, isNvl(d60.getData().getAlarmTime())); | |
| 232 | - ps.setShort(9, isNvl(d60.getData().getCompanyCode())); | |
| 233 | - ps.setShort(10, isNvl(d60.getData().getDispatchInstruct())); | |
| 234 | - ps.setInt(11, d60.getData().getInstructType()); | |
| 235 | - ps.setInt(12, d60.getData().getMsgId()); | |
| 236 | - ps.setLong(13, d60.getData().getServiceState()); | |
| 237 | - ps.setString(14, d60.getData().getTxtContent()); | |
| 238 | - ps.setBoolean(15, d60.isDispatch()); | |
| 239 | - | |
| 240 | - ps.setString(16, isNvl(d60.getLineCode())); | |
| 241 | - ps.setShort(17, isNvl(d60.getReply46())); | |
| 242 | - | |
| 243 | - if(null == d60.getReply46Time()) | |
| 244 | - ps.setNull(18, Types.BIGINT); | |
| 245 | - else | |
| 246 | - ps.setLong(18, d60.getReply46Time()); | |
| 247 | - | |
| 248 | - ps.setShort(19, isNvl(d60.getReply47())); | |
| 249 | - | |
| 250 | - if(null == d60.getReply47Time()) | |
| 251 | - ps.setNull(20, Types.BIGINT); | |
| 252 | - else | |
| 253 | - ps.setLong(20, d60.getReply47Time()); | |
| 254 | - | |
| 255 | - if(d60.getSch()==null) | |
| 256 | - ps.setNull(21, Types.BIGINT); | |
| 257 | - else | |
| 258 | - ps.setLong(21, d60.getSch().getId()); | |
| 259 | - } | |
| 260 | - | |
| 261 | - @Override | |
| 262 | - public int getBatchSize() { | |
| 263 | - return d60s.size(); | |
| 264 | - } | |
| 265 | - }); | |
| 266 | - | |
| 267 | - tran.commit(status); | |
| 268 | - | |
| 269 | - logger.info("60 入库成功: " + d60s.size()); | |
| 270 | - }catch (Exception e){ | |
| 271 | - tran.rollback(status); | |
| 272 | - logger.error("", e); | |
| 273 | - logger.warn("失败的数据:" + JSON.toJSONString(d60s)); | |
| 274 | - } | |
| 275 | - } | |
| 276 | - | |
| 277 | - private String isNvl(String v) { | |
| 278 | - return v==null?"":v; | |
| 279 | - } | |
| 280 | - | |
| 281 | - private short isNvl(Short v) { | |
| 282 | - return v==null?0:v; | |
| 283 | - } | |
| 284 | - | |
| 285 | - private long isNvl(Long v) { | |
| 286 | - return v==null?0:v; | |
| 287 | - } | |
| 288 | - | |
| 289 | - private boolean isDelete(D60 d60){ | |
| 290 | - try{ | |
| 291 | - //如果关联的班次已经不存在了,放弃入库,很低概率出现 | |
| 292 | - if(d60.isDispatch() && d60.getSch().isDeleted()){ | |
| 293 | - logger.warn("save 指令,发现 deleted=true 的班次,id=" + d60.getSch().getId()); | |
| 294 | - return true; | |
| 295 | - } | |
| 296 | - }catch (Exception e){ | |
| 297 | - logger.error("", e); | |
| 298 | - } | |
| 299 | - | |
| 300 | - return false; | |
| 301 | - } | |
| 302 | -} | |
| 1 | +package com.bsth.data.directive; | |
| 2 | + | |
| 3 | +import com.alibaba.fastjson.JSON; | |
| 4 | +import com.bsth.data.schedule.DayOfSchedule; | |
| 5 | +import com.bsth.entity.directive.D60; | |
| 6 | +import com.bsth.entity.directive.D64; | |
| 7 | +import com.bsth.entity.directive.Directive; | |
| 8 | +import com.bsth.repository.directive.D60Repository; | |
| 9 | +import com.bsth.repository.directive.D64Repository; | |
| 10 | +import org.joda.time.format.DateTimeFormat; | |
| 11 | +import org.joda.time.format.DateTimeFormatter; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.jdbc.core.BatchPreparedStatementSetter; | |
| 16 | +import org.springframework.jdbc.core.JdbcTemplate; | |
| 17 | +import org.springframework.stereotype.Component; | |
| 18 | +import org.springframework.transaction.TransactionStatus; | |
| 19 | +import org.springframework.transaction.support.TransactionCallbackWithoutResult; | |
| 20 | +import org.springframework.transaction.support.TransactionTemplate; | |
| 21 | + | |
| 22 | +import java.sql.PreparedStatement; | |
| 23 | +import java.sql.SQLException; | |
| 24 | +import java.sql.Types; | |
| 25 | +import java.util.ArrayList; | |
| 26 | +import java.util.List; | |
| 27 | +import java.util.concurrent.ConcurrentLinkedQueue; | |
| 28 | + | |
| 29 | +/** | |
| 30 | + * 指令持久化线程 | |
| 31 | + * Created by panzhao on 2017/3/6. | |
| 32 | + */ | |
| 33 | +@Component | |
| 34 | +public class DirectivesPstThread extends Thread { | |
| 35 | + | |
| 36 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + D60Repository d60Repository; | |
| 40 | + | |
| 41 | + @Autowired | |
| 42 | + D64Repository d64Repository; | |
| 43 | + | |
| 44 | + @Autowired | |
| 45 | + DayOfSchedule dayOfSchedule; | |
| 46 | + | |
| 47 | + @Autowired | |
| 48 | + JdbcTemplate jdbcTemplate; | |
| 49 | + | |
| 50 | + @Autowired | |
| 51 | + private TransactionTemplate transactionTemplate; | |
| 52 | + | |
| 53 | + private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); | |
| 54 | + | |
| 55 | + @Override | |
| 56 | + public void run() { | |
| 57 | + logger.warn("指令持久化开始"); | |
| 58 | + try{ | |
| 59 | + ConcurrentLinkedQueue<Directive> list = DayOfDirectives.pstDirectives; | |
| 60 | + | |
| 61 | + List<D60> d60s = new ArrayList<>(); | |
| 62 | + List<D64> d64s = new ArrayList<>(); | |
| 63 | + //按 60 和 64 分组 | |
| 64 | + Directive directive; | |
| 65 | + D60 d60; | |
| 66 | + for (int i = 0; i < 2000; i++) { | |
| 67 | + directive = list.poll(); | |
| 68 | + if(null == directive) | |
| 69 | + break; | |
| 70 | + | |
| 71 | + //日期 | |
| 72 | + directive.setRq(fmtyyyyMMdd.print(directive.getTimestamp())); | |
| 73 | + | |
| 74 | + if (directive instanceof D60) { | |
| 75 | + d60 = (D60) directive; | |
| 76 | + if(isDelete(d60)) | |
| 77 | + continue; | |
| 78 | + d60s.add(d60); | |
| 79 | + } | |
| 80 | + else if(directive instanceof D64) | |
| 81 | + d64s.add((D64) directive); | |
| 82 | + } | |
| 83 | + | |
| 84 | + //入库60 | |
| 85 | + save60(d60s); | |
| 86 | + //入库64 | |
| 87 | + save64(d64s); | |
| 88 | + | |
| 89 | + | |
| 90 | + // 60 指令更新(车载响应) | |
| 91 | + ConcurrentLinkedQueue<D60> updateD60s = DayOfDirectives.pstD60s; | |
| 92 | + d60s = new ArrayList<>(); | |
| 93 | + for (int i = 0; i < 2000; i++) { | |
| 94 | + d60 = updateD60s.poll(); | |
| 95 | + if(null == d60) | |
| 96 | + break; | |
| 97 | + d60s.add(d60); | |
| 98 | + } | |
| 99 | + | |
| 100 | + if(d60s.size() > 0) | |
| 101 | + update60(d60s); | |
| 102 | + }catch (Exception e){ | |
| 103 | + logger.error("指令入库出现异常", e); | |
| 104 | + } | |
| 105 | + logger.warn("指令持久化结束"); | |
| 106 | + } | |
| 107 | + | |
| 108 | + private void save64(final List<D64> d64s) { | |
| 109 | + if(null == d64s || d64s.size() == 0) | |
| 110 | + return; | |
| 111 | + | |
| 112 | + logger.warn("64指令保存开始"); | |
| 113 | + | |
| 114 | + String sql = "insert into bsth_v_directive_64(device_id,error_text,http_code,oper_code,rq,sender,timestamp,city_code,line_id,txt_content,resp_ack) " + | |
| 115 | + " values(?,?,?,?,?,?,?,?,?,?,?)"; | |
| 116 | + | |
| 117 | + transactionTemplate.execute(new TransactionCallbackWithoutResult() { | |
| 118 | + | |
| 119 | + @Override | |
| 120 | + protected void doInTransactionWithoutResult(TransactionStatus status) { | |
| 121 | + try { | |
| 122 | + jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | |
| 123 | + @Override | |
| 124 | + public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 125 | + D64 d64 = d64s.get(i); | |
| 126 | + ps.setString(1 , d64.getDeviceId()); | |
| 127 | + ps.setString(2, isNvl(d64.getErrorText())); | |
| 128 | + ps.setInt(3, d64.getHttpCode()); | |
| 129 | + ps.setShort(4, isNvl(d64.getOperCode())); | |
| 130 | + ps.setString(5, d64.getRq()); | |
| 131 | + | |
| 132 | + ps.setString(6, isNvl(d64.getSender())); | |
| 133 | + ps.setLong(7, d64.getTimestamp()); | |
| 134 | + | |
| 135 | + ps.setShort(8, isNvl(d64.getData().getCityCode())); | |
| 136 | + ps.setString(9, isNvl(d64.getData().getLineId())); | |
| 137 | + ps.setString(10, isNvl(d64.getData().getTxtContent())); | |
| 138 | + ps.setShort(11, isNvl(d64.getRespAck())); | |
| 139 | + } | |
| 140 | + | |
| 141 | + @Override | |
| 142 | + public int getBatchSize() { | |
| 143 | + return d64s.size(); | |
| 144 | + } | |
| 145 | + }); | |
| 146 | + } catch (Exception e) { | |
| 147 | + logger.error(String.format("错误数据:%s", JSON.toJSONString(d64s)), e); | |
| 148 | + status.setRollbackOnly(); | |
| 149 | + } | |
| 150 | + } | |
| 151 | + }); | |
| 152 | + logger.warn("64指令保存结束"); | |
| 153 | + } | |
| 154 | + | |
| 155 | + private void update60(final List<D60> d60s) { | |
| 156 | + if(null == d60s || d60s.size() == 0) | |
| 157 | + return; | |
| 158 | + | |
| 159 | + logger.warn("60指令更新开始"); | |
| 160 | + String sql = "update bsth_v_directive_60 set reply46=?,reply46time=?,reply47=?,reply47time=? where device_id=? and timestamp=? and msg_id=?"; | |
| 161 | + | |
| 162 | + transactionTemplate.execute(new TransactionCallbackWithoutResult() { | |
| 163 | + | |
| 164 | + @Override | |
| 165 | + protected void doInTransactionWithoutResult(TransactionStatus status) { | |
| 166 | + try{ | |
| 167 | + jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | |
| 168 | + @Override | |
| 169 | + public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 170 | + D60 d60 = d60s.get(i); | |
| 171 | + ps.setShort(1, isNvl(d60.getReply46())); | |
| 172 | + if(null == d60.getReply46Time()) | |
| 173 | + ps.setNull(2, Types.BIGINT); | |
| 174 | + else | |
| 175 | + ps.setLong(2, d60.getReply46Time()); | |
| 176 | + | |
| 177 | + ps.setShort(3, isNvl(d60.getReply47())); | |
| 178 | + | |
| 179 | + if(null == d60.getReply47Time()) | |
| 180 | + ps.setNull(4, Types.BIGINT); | |
| 181 | + else | |
| 182 | + ps.setLong(4, d60.getReply47Time()); | |
| 183 | + ps.setString(5, d60.getDeviceId()); | |
| 184 | + ps.setLong(6, d60.getTimestamp()); | |
| 185 | + ps.setInt(7, d60.getMsgId()); | |
| 186 | + } | |
| 187 | + | |
| 188 | + @Override | |
| 189 | + public int getBatchSize() { | |
| 190 | + return d60s.size(); | |
| 191 | + } | |
| 192 | + }); | |
| 193 | + }catch (Exception e){ | |
| 194 | + logger.error(String.format("错误数据:%s", JSON.toJSONString(d60s)), e); | |
| 195 | + status.setRollbackOnly(); | |
| 196 | + } | |
| 197 | + } | |
| 198 | + }); | |
| 199 | + logger.warn("60指令更新结束"); | |
| 200 | + } | |
| 201 | + | |
| 202 | + private void save60(final List<D60> d60s) { | |
| 203 | + if(null == d60s || d60s.size() == 0) | |
| 204 | + return; | |
| 205 | + | |
| 206 | + logger.warn("60指令保存开始"); | |
| 207 | + String sql = "insert into bsth_v_directive_60(device_id,error_text,http_code,oper_code,rq,sender,timestamp" + | |
| 208 | + ",alarm_time,company_code,dispatch_instruct,instruct_type,msg_id,service_state,txt_content,is_dispatch" + | |
| 209 | + ",line_code,reply46,reply46time,reply47,reply47time,sch) " + | |
| 210 | + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; | |
| 211 | + | |
| 212 | + transactionTemplate.execute(new TransactionCallbackWithoutResult() { | |
| 213 | + | |
| 214 | + @Override | |
| 215 | + protected void doInTransactionWithoutResult(TransactionStatus status) { | |
| 216 | + try{ | |
| 217 | + jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | |
| 218 | + @Override | |
| 219 | + public void setValues(PreparedStatement ps, int i) throws SQLException { | |
| 220 | + D60 d60 = d60s.get(i); | |
| 221 | + ps.setString(1, d60.getDeviceId()); | |
| 222 | + ps.setString(2, isNvl(d60.getErrorText())); | |
| 223 | + ps.setInt(3, d60.getHttpCode()); | |
| 224 | + ps.setShort(4, d60.getOperCode()); | |
| 225 | + ps.setString(5, d60.getRq()); | |
| 226 | + ps.setString(6, d60.getSender()); | |
| 227 | + ps.setLong(7, d60.getTimestamp()); | |
| 228 | + | |
| 229 | + ps.setLong(8, isNvl(d60.getData().getAlarmTime())); | |
| 230 | + ps.setShort(9, isNvl(d60.getData().getCompanyCode())); | |
| 231 | + ps.setShort(10, isNvl(d60.getData().getDispatchInstruct())); | |
| 232 | + ps.setInt(11, d60.getData().getInstructType()); | |
| 233 | + ps.setInt(12, d60.getData().getMsgId()); | |
| 234 | + ps.setLong(13, d60.getData().getServiceState()); | |
| 235 | + ps.setString(14, d60.getData().getTxtContent()); | |
| 236 | + ps.setBoolean(15, d60.isDispatch()); | |
| 237 | + | |
| 238 | + ps.setString(16, isNvl(d60.getLineCode())); | |
| 239 | + ps.setShort(17, isNvl(d60.getReply46())); | |
| 240 | + | |
| 241 | + if(null == d60.getReply46Time()) | |
| 242 | + ps.setNull(18, Types.BIGINT); | |
| 243 | + else | |
| 244 | + ps.setLong(18, d60.getReply46Time()); | |
| 245 | + | |
| 246 | + ps.setShort(19, isNvl(d60.getReply47())); | |
| 247 | + | |
| 248 | + if(null == d60.getReply47Time()) | |
| 249 | + ps.setNull(20, Types.BIGINT); | |
| 250 | + else | |
| 251 | + ps.setLong(20, d60.getReply47Time()); | |
| 252 | + | |
| 253 | + if(d60.getSch()==null) | |
| 254 | + ps.setNull(21, Types.BIGINT); | |
| 255 | + else | |
| 256 | + ps.setLong(21, d60.getSch().getId()); | |
| 257 | + } | |
| 258 | + | |
| 259 | + @Override | |
| 260 | + public int getBatchSize() { | |
| 261 | + return d60s.size(); | |
| 262 | + } | |
| 263 | + }); | |
| 264 | + }catch (Exception e){ | |
| 265 | + logger.error(String.format("错误数据:%s", JSON.toJSONString(d60s)), e); | |
| 266 | + status.setRollbackOnly(); | |
| 267 | + } | |
| 268 | + } | |
| 269 | + }); | |
| 270 | + logger.warn("60指令保存结束"); | |
| 271 | + } | |
| 272 | + | |
| 273 | + private String isNvl(String v) { | |
| 274 | + return v==null?"":v; | |
| 275 | + } | |
| 276 | + | |
| 277 | + private short isNvl(Short v) { | |
| 278 | + return v==null?0:v; | |
| 279 | + } | |
| 280 | + | |
| 281 | + private long isNvl(Long v) { | |
| 282 | + return v==null?0:v; | |
| 283 | + } | |
| 284 | + | |
| 285 | + private boolean isDelete(D60 d60){ | |
| 286 | + try{ | |
| 287 | + //如果关联的班次已经不存在了,放弃入库,很低概率出现 | |
| 288 | + if(d60.isDispatch() && d60.getSch().isDeleted()){ | |
| 289 | + logger.warn("save 指令,发现 deleted=true 的班次,id=" + d60.getSch().getId()); | |
| 290 | + return true; | |
| 291 | + } | |
| 292 | + }catch (Exception e){ | |
| 293 | + logger.error("", e); | |
| 294 | + } | |
| 295 | + | |
| 296 | + return false; | |
| 297 | + } | |
| 298 | +} | ... | ... |
src/main/java/com/bsth/data/forecast/SampleTimeDataLoader.java
| 1 | -package com.bsth.data.forecast; | |
| 2 | - | |
| 3 | -import java.util.ArrayList; | |
| 4 | -import java.util.Collections; | |
| 5 | -import java.util.Comparator; | |
| 6 | -import java.util.Date; | |
| 7 | -import java.util.Iterator; | |
| 8 | -import java.util.List; | |
| 9 | -import java.util.Set; | |
| 10 | - | |
| 11 | -import org.joda.time.format.DateTimeFormat; | |
| 12 | -import org.joda.time.format.DateTimeFormatter; | |
| 13 | -import org.slf4j.Logger; | |
| 14 | -import org.slf4j.LoggerFactory; | |
| 15 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 16 | -import org.springframework.stereotype.Component; | |
| 17 | - | |
| 18 | -import com.bsth.data.forecast.entity.SimpleRoute; | |
| 19 | -import com.bsth.data.forecast.entity.SimpleRoute.TimeRange; | |
| 20 | -import com.bsth.entity.StationRoute; | |
| 21 | -import com.bsth.entity.forecast.Sample; | |
| 22 | -import com.bsth.repository.StationRouteRepository; | |
| 23 | -import com.bsth.repository.forecast.SampleRepository; | |
| 24 | -import com.google.common.collect.ArrayListMultimap; | |
| 25 | - | |
| 26 | -/** | |
| 27 | - * | |
| 28 | - * @Title: loadData | |
| 29 | - * @Description: TODO(从数据库加载数据) | |
| 30 | - */ | |
| 31 | -@Component | |
| 32 | -public class SampleTimeDataLoader extends Thread { | |
| 33 | - | |
| 34 | - @Autowired | |
| 35 | - SampleRepository sampleRepository; | |
| 36 | - | |
| 37 | - @Autowired | |
| 38 | - StationRouteRepository stationRouteRepository; | |
| 39 | - | |
| 40 | - // 当天日期 | |
| 41 | - String rq; | |
| 42 | - | |
| 43 | - private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm") | |
| 44 | - ,fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); | |
| 45 | - | |
| 46 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 47 | - | |
| 48 | - @Override | |
| 49 | - public void run() { | |
| 50 | - rq = fmtyyyyMMdd.print(new Date().getTime()); | |
| 51 | - | |
| 52 | - Iterator<Sample> iterator = sampleRepository.findAll().iterator(); | |
| 53 | - ArrayListMultimap<String, Sample> sampleMap = ArrayListMultimap.create(); | |
| 54 | - | |
| 55 | - Sample sample; | |
| 56 | - String key; | |
| 57 | - while (iterator.hasNext()) { | |
| 58 | - sample = iterator.next(); | |
| 59 | - key = sample.getLineCode() + "_" + sample.getUpdown() + "_" + sample.getsStation() + "_" | |
| 60 | - + sample.geteStation(); | |
| 61 | - sampleMap.put(key, sample); | |
| 62 | - } | |
| 63 | - | |
| 64 | - // 加载全部路由信息 | |
| 65 | - List<StationRoute> allRoutes = stationRouteRepository.findAllEffective(); | |
| 66 | - // 线路和走向分组 | |
| 67 | - ArrayListMultimap<String, StationRoute> groupMap = ArrayListMultimap.create(); | |
| 68 | - for (StationRoute sr : allRoutes) | |
| 69 | - groupMap.put(sr.getLineCode() + "_" + sr.getDirections(), sr); | |
| 70 | - | |
| 71 | - ArrayListMultimap<String, SimpleRoute> lineSampleMapCopy = ArrayListMultimap.create(); | |
| 72 | - // 排序路由链并附加各个时区耗时信息 | |
| 73 | - StationRouteComp comp = new StationRouteComp(); | |
| 74 | - Set<String> kys = groupMap.keySet(); | |
| 75 | - List<StationRoute> routeList; | |
| 76 | - StationRoute sRoute; | |
| 77 | - | |
| 78 | - List<Sample> sapList; | |
| 79 | - for (String k : kys) { | |
| 80 | - routeList = groupMap.get(k); | |
| 81 | - // 排序 | |
| 82 | - Collections.sort(routeList, comp); | |
| 83 | - | |
| 84 | - for (int i = 1; i < routeList.size(); i++) { | |
| 85 | - sRoute = routeList.get(i); | |
| 86 | - | |
| 87 | - sapList = sampleMap.get(k + "_" +routeList.get(i - 1).getStationCode() + "_" + sRoute.getStationCode()); | |
| 88 | - | |
| 89 | - lineSampleMapCopy.put(k, createSimpleRoute(sRoute, sapList)); | |
| 90 | - } | |
| 91 | - } | |
| 92 | - | |
| 93 | - ForecastRealServer.lineSampleMap = lineSampleMapCopy; | |
| 94 | - logger.info("SampleTimeDataLoader.... over..."); | |
| 95 | - } | |
| 96 | - | |
| 97 | - private SimpleRoute createSimpleRoute(StationRoute sRoute, List<Sample> list) { | |
| 98 | - SimpleRoute simple = new SimpleRoute(); | |
| 99 | - | |
| 100 | - simple.stationCode = sRoute.getStationCode(); | |
| 101 | - simple.ranges = new ArrayList<>(); | |
| 102 | - | |
| 103 | - try{ | |
| 104 | - TimeRange tg; | |
| 105 | - for (Sample s : list) { | |
| 106 | - tg = new TimeRange(); | |
| 107 | - | |
| 108 | - tg.startTime = fmtyyyyMMddHHmm.parseMillis(rq + s.getsDate()); | |
| 109 | - tg.endTime = fmtyyyyMMddHHmm.parseMillis(rq + s.geteDate()); | |
| 110 | - tg.runTime = s.getRunTime(); | |
| 111 | - simple.ranges.add(tg); | |
| 112 | - } | |
| 113 | - | |
| 114 | - //排序 | |
| 115 | - Collections.sort(simple.ranges); | |
| 116 | - }catch(Exception e){ | |
| 117 | - logger.error("", e); | |
| 118 | - } | |
| 119 | - return simple; | |
| 120 | - } | |
| 121 | - | |
| 122 | - public static class StationRouteComp implements Comparator<StationRoute> { | |
| 123 | - | |
| 124 | - @Override | |
| 125 | - public int compare(StationRoute o1, StationRoute o2) { | |
| 126 | - return o1.getStationRouteCode() - o2.getStationRouteCode(); | |
| 127 | - } | |
| 128 | - } | |
| 129 | -} | |
| 1 | +package com.bsth.data.forecast; | |
| 2 | + | |
| 3 | +import java.util.ArrayList; | |
| 4 | +import java.util.Collections; | |
| 5 | +import java.util.Comparator; | |
| 6 | +import java.util.Date; | |
| 7 | +import java.util.Iterator; | |
| 8 | +import java.util.List; | |
| 9 | +import java.util.Set; | |
| 10 | + | |
| 11 | +import org.joda.time.format.DateTimeFormat; | |
| 12 | +import org.joda.time.format.DateTimeFormatter; | |
| 13 | +import org.slf4j.Logger; | |
| 14 | +import org.slf4j.LoggerFactory; | |
| 15 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 16 | +import org.springframework.stereotype.Component; | |
| 17 | + | |
| 18 | +import com.bsth.data.forecast.entity.SimpleRoute; | |
| 19 | +import com.bsth.data.forecast.entity.SimpleRoute.TimeRange; | |
| 20 | +import com.bsth.entity.StationRoute; | |
| 21 | +import com.bsth.entity.forecast.Sample; | |
| 22 | +import com.bsth.repository.StationRouteRepository; | |
| 23 | +import com.bsth.repository.forecast.SampleRepository; | |
| 24 | +import com.google.common.collect.ArrayListMultimap; | |
| 25 | + | |
| 26 | +/** | |
| 27 | + * | |
| 28 | + * @Title: loadData | |
| 29 | + * @Description: TODO(从数据库加载数据) | |
| 30 | + */ | |
| 31 | +@Component | |
| 32 | +public class SampleTimeDataLoader extends Thread { | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + SampleRepository sampleRepository; | |
| 36 | + | |
| 37 | + @Autowired | |
| 38 | + StationRouteRepository stationRouteRepository; | |
| 39 | + | |
| 40 | + // 当天日期 | |
| 41 | + String rq; | |
| 42 | + | |
| 43 | + private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm") | |
| 44 | + ,fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); | |
| 45 | + | |
| 46 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 47 | + | |
| 48 | + @Override | |
| 49 | + public void run() { | |
| 50 | + logger.warn("到离站预测样本加载开始"); | |
| 51 | + rq = fmtyyyyMMdd.print(System.currentTimeMillis()); | |
| 52 | + | |
| 53 | + Iterator<Sample> iterator = sampleRepository.findAll().iterator(); | |
| 54 | + ArrayListMultimap<String, Sample> sampleMap = ArrayListMultimap.create(); | |
| 55 | + | |
| 56 | + Sample sample; | |
| 57 | + String key; | |
| 58 | + while (iterator.hasNext()) { | |
| 59 | + sample = iterator.next(); | |
| 60 | + key = sample.getLineCode() + "_" + sample.getUpdown() + "_" + sample.getsStation() + "_" | |
| 61 | + + sample.geteStation(); | |
| 62 | + sampleMap.put(key, sample); | |
| 63 | + } | |
| 64 | + | |
| 65 | + // 加载全部路由信息 | |
| 66 | + List<StationRoute> allRoutes = stationRouteRepository.findAllEffective(); | |
| 67 | + // 线路和走向分组 | |
| 68 | + ArrayListMultimap<String, StationRoute> groupMap = ArrayListMultimap.create(); | |
| 69 | + for (StationRoute sr : allRoutes) | |
| 70 | + groupMap.put(sr.getLineCode() + "_" + sr.getDirections(), sr); | |
| 71 | + | |
| 72 | + ArrayListMultimap<String, SimpleRoute> lineSampleMapCopy = ArrayListMultimap.create(); | |
| 73 | + // 排序路由链并附加各个时区耗时信息 | |
| 74 | + StationRouteComp comp = new StationRouteComp(); | |
| 75 | + Set<String> kys = groupMap.keySet(); | |
| 76 | + List<StationRoute> routeList; | |
| 77 | + StationRoute sRoute; | |
| 78 | + | |
| 79 | + List<Sample> sapList; | |
| 80 | + for (String k : kys) { | |
| 81 | + routeList = groupMap.get(k); | |
| 82 | + // 排序 | |
| 83 | + Collections.sort(routeList, comp); | |
| 84 | + | |
| 85 | + for (int i = 1; i < routeList.size(); i++) { | |
| 86 | + sRoute = routeList.get(i); | |
| 87 | + | |
| 88 | + sapList = sampleMap.get(k + "_" +routeList.get(i - 1).getStationCode() + "_" + sRoute.getStationCode()); | |
| 89 | + | |
| 90 | + lineSampleMapCopy.put(k, createSimpleRoute(sRoute, sapList)); | |
| 91 | + } | |
| 92 | + } | |
| 93 | + | |
| 94 | + ForecastRealServer.lineSampleMap = lineSampleMapCopy; | |
| 95 | + logger.warn("到离站预测样本加载结束"); | |
| 96 | + } | |
| 97 | + | |
| 98 | + private SimpleRoute createSimpleRoute(StationRoute sRoute, List<Sample> list) { | |
| 99 | + SimpleRoute simple = new SimpleRoute(); | |
| 100 | + | |
| 101 | + simple.stationCode = sRoute.getStationCode(); | |
| 102 | + simple.ranges = new ArrayList<>(); | |
| 103 | + | |
| 104 | + try{ | |
| 105 | + TimeRange tg; | |
| 106 | + for (Sample s : list) { | |
| 107 | + tg = new TimeRange(); | |
| 108 | + | |
| 109 | + tg.startTime = fmtyyyyMMddHHmm.parseMillis(rq + s.getsDate()); | |
| 110 | + tg.endTime = fmtyyyyMMddHHmm.parseMillis(rq + s.geteDate()); | |
| 111 | + tg.runTime = s.getRunTime(); | |
| 112 | + simple.ranges.add(tg); | |
| 113 | + } | |
| 114 | + | |
| 115 | + //排序 | |
| 116 | + Collections.sort(simple.ranges); | |
| 117 | + }catch(Exception e){ | |
| 118 | + logger.error("", e); | |
| 119 | + } | |
| 120 | + return simple; | |
| 121 | + } | |
| 122 | + | |
| 123 | + public static class StationRouteComp implements Comparator<StationRoute> { | |
| 124 | + | |
| 125 | + @Override | |
| 126 | + public int compare(StationRoute o1, StationRoute o2) { | |
| 127 | + return o1.getStationRouteCode() - o2.getStationRouteCode(); | |
| 128 | + } | |
| 129 | + } | |
| 130 | +} | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/cache/GeoCacheData.java
| ... | ... | @@ -94,7 +94,7 @@ public class GeoCacheData { |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | private void loadStationRoutesData(){ |
| 97 | - String sql = "select r.LINE_CODE,r.DIRECTIONS,r.STATION_CODE,r.STATION_MARK,s.SHAPES_TYPE,s.G_LONX,s.G_LATY,ST_AsText(s.G_POLYGON_GRID) as G_POLYGON_GRID,s.RADIUS, r.STATION_ROUTE_CODE,s.STATION_NAME from bsth_c_stationroute r left join bsth_c_station s on r.station=s.id where r.destroy=0 order by r.station_route_code"; | |
| 97 | + String sql = "select r.LINE_CODE,r.DIRECTIONS,r.STATION_CODE,r.STATION_MARK,r.SHAPED_TYPE,ST_X(s.CENTER_POINT_WGS) G_LONX, ST_Y(s.CENTER_POINT_WGS) G_LATY,ST_AsText(r.BUFFER_POLYGON_WGS) as G_POLYGON_GRID,r.RADIUS, r.STATION_ROUTE_CODE,r.STATION_NAME from bsth_c_stationroute r left join bsth_c_station s on r.station=s.id where r.destroy=0 order by r.station_route_code"; | |
| 98 | 98 | List<StationRoute> routeList = jdbcTemplate.query(sql, new RowMapper() { |
| 99 | 99 | |
| 100 | 100 | @Override |
| ... | ... | @@ -109,10 +109,11 @@ public class GeoCacheData { |
| 109 | 109 | sRoute.setMark(rs.getString("STATION_MARK")); |
| 110 | 110 | sRoute.setName(rs.getString("STATION_NAME")); |
| 111 | 111 | |
| 112 | - String shapesType = rs.getString("SHAPES_TYPE"); | |
| 112 | + String shapesType = rs.getString("SHAPED_TYPE"); | |
| 113 | 113 | //多边形电子围栏 |
| 114 | - if (StringUtils.isNotEmpty(shapesType) && shapesType.equals("d")) | |
| 114 | + if (StringUtils.isNotEmpty(shapesType) && shapesType.equals("d")) { | |
| 115 | 115 | sRoute.setPolygon(parsePolygon(rs.getString("G_POLYGON_GRID"))); |
| 116 | + } | |
| 116 | 117 | return sRoute; |
| 117 | 118 | } |
| 118 | 119 | }); | ... | ... |
src/main/java/com/bsth/data/gpsdata_v2/thread/GpsDataLoaderThread.java
| 1 | -package com.bsth.data.gpsdata_v2.thread; | |
| 2 | - | |
| 3 | -import com.bsth.data.gpsdata_v2.DataHandleProcess; | |
| 4 | -import com.bsth.data.gpsdata_v2.entity.GpsEntity; | |
| 5 | -import com.bsth.data.gpsdata_v2.load.GatewayHttpLoader; | |
| 6 | -import com.bsth.data.gpsdata_v2.load.SocketClientLoader; | |
| 7 | -import org.slf4j.Logger; | |
| 8 | -import org.slf4j.LoggerFactory; | |
| 9 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | -import org.springframework.stereotype.Component; | |
| 11 | - | |
| 12 | -import java.util.List; | |
| 13 | - | |
| 14 | -/** | |
| 15 | - * Created by panzhao on 2017/1/11. | |
| 16 | - */ | |
| 17 | -@Component | |
| 18 | -public class GpsDataLoaderThread extends Thread { | |
| 19 | - | |
| 20 | - Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 21 | - | |
| 22 | - //0:从GPS客户端内存获取 -1:从网关获取 | |
| 23 | - private static int flag = 0; | |
| 24 | - | |
| 25 | - public static void setFlag(int v) { | |
| 26 | - flag = v; | |
| 27 | - } | |
| 28 | - | |
| 29 | - @Autowired | |
| 30 | - DataHandleProcess handleProcess; | |
| 31 | - | |
| 32 | - @Override | |
| 33 | - public void run() { | |
| 34 | - try { | |
| 35 | - List<GpsEntity> list; | |
| 36 | - if (flag == 0) | |
| 37 | - list = SocketClientLoader.load(); | |
| 38 | - else | |
| 39 | - list = GatewayHttpLoader.load(); | |
| 40 | - | |
| 41 | - if(null != list && list.size() > 0) | |
| 42 | - handleProcess.handle(list); | |
| 43 | - } catch (Exception e) { | |
| 44 | - logger.error("", e); | |
| 45 | - } | |
| 46 | - } | |
| 1 | +package com.bsth.data.gpsdata_v2.thread; | |
| 2 | + | |
| 3 | +import com.bsth.data.gpsdata_v2.DataHandleProcess; | |
| 4 | +import com.bsth.data.gpsdata_v2.entity.GpsEntity; | |
| 5 | +import com.bsth.data.gpsdata_v2.load.GatewayHttpLoader; | |
| 6 | +import com.bsth.data.gpsdata_v2.load.SocketClientLoader; | |
| 7 | +import org.slf4j.Logger; | |
| 8 | +import org.slf4j.LoggerFactory; | |
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | +import org.springframework.stereotype.Component; | |
| 11 | + | |
| 12 | +import java.util.List; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * Created by panzhao on 2017/1/11. | |
| 16 | + */ | |
| 17 | +@Component | |
| 18 | +public class GpsDataLoaderThread extends Thread { | |
| 19 | + | |
| 20 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | |
| 21 | + | |
| 22 | + //0:从GPS客户端内存获取 -1:从网关获取 | |
| 23 | + private static int flag = 0; | |
| 24 | + | |
| 25 | + public static void setFlag(int v) { | |
| 26 | + flag = v; | |
| 27 | + } | |
| 28 | + | |
| 29 | + @Autowired | |
| 30 | + DataHandleProcess handleProcess; | |
| 31 | + | |
| 32 | + @Override | |
| 33 | + public void run() { | |
| 34 | + logger.warn("GPS获取数据开始"); | |
| 35 | + try { | |
| 36 | + List<GpsEntity> list; | |
| 37 | + if (flag == 0) | |
| 38 | + list = SocketClientLoader.load(); | |
| 39 | + else | |
| 40 | + list = GatewayHttpLoader.load(); | |
| 41 | + | |
| 42 | + if(null != list && list.size() > 0) | |
| 43 | + handleProcess.handle(list); | |
| 44 | + } catch (Exception e) { | |
| 45 | + logger.error("", e); | |
| 46 | + } | |
| 47 | + logger.warn("GPS获取数据结束"); | |
| 48 | + } | |
| 47 | 49 | } |
| 48 | 50 | \ No newline at end of file | ... | ... |