Commit c4fecbeecc3abd25d0ee0b41cabadec1e9375ce1

Authored by 王通
1 parent bec3c4e6

1.线调->轨迹回放加入到离站信息导出功能

src/main/java/com/bsth/service/gps/GpsServiceImpl.java
... ... @@ -559,6 +559,22 @@ public class GpsServiceImpl implements GpsService {
559 559 public Map<String, ArrivalEntity> findArrivalByTs(Long st, Long et, List<DeviceChange> dcs) {
560 560 Map<String, ArrivalEntity> map = new HashMap<>();
561 561  
  562 + List<ArrivalEntity> list = findArrivalListByTs(st, et, dcs);
  563 +
  564 + String stationName, prefix;
  565 + for(ArrivalEntity arr : list){
  566 + prefix = arr.getLineCode() + "_" + arr.getUpDown() + "_";
  567 + stationName = BasicData.getStationNameByCode(arr.getStopNo(), prefix);
  568 +
  569 + arr.setStopName(stationName);
  570 +
  571 + // 反转进出状态
  572 + map.put(arr.getDeviceId() + "_" + arr.getTs(), arr);
  573 + }
  574 + return map;
  575 + }
  576 +
  577 + private List<ArrivalEntity> findArrivalListByTs(Long st, Long et, List<DeviceChange> dcs) {
562 578 // weeks_year 分区字段
563 579 Calendar sCal = Calendar.getInstance();
564 580 sCal.setTime(new Date(st));
... ... @@ -591,21 +607,10 @@ public class GpsServiceImpl implements GpsService {
591 607 sql.append(" UNION ");
592 608 }
593 609  
594   - logger.info("arrivl sql : " + sql.toString());
  610 + logger.info("arrival sql : " + sql.toString());
595 611 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource());
596   - List<ArrivalEntity> list = jdbcTemplate_ms.query(sql.toString(), BeanPropertyRowMapper.newInstance(ArrivalEntity.class));
597   -
598   - String stationName, prefix;
599   - for(ArrivalEntity arr : list){
600   - prefix = arr.getLineCode() + "_" + arr.getUpDown() + "_";
601   - stationName = BasicData.getStationNameByCode(arr.getStopNo(), prefix);
602 612  
603   - arr.setStopName(stationName);
604   -
605   - // 反转进出状态
606   - map.put(arr.getDeviceId() + "_" + arr.getTs(), arr);
607   - }
608   - return map;
  613 + return jdbcTemplate_ms.query(sql.toString(), BeanPropertyRowMapper.newInstance(ArrivalEntity.class));
609 614 }
610 615  
611 616  
... ... @@ -1074,7 +1079,55 @@ public class GpsServiceImpl implements GpsService {
1074 1079  
1075 1080 @Override
1076 1081 public void arrivalExcel(String nbbm, long st, long et, HttpServletResponse resp) {
  1082 + st = st * 1000;
  1083 + et = et * 1000;
  1084 + List<DeviceChange> dcs = findDeviceChangeLogs(nbbm, et, st);
  1085 + // 查询到离站数据
  1086 + List<ArrivalEntity> list = findArrivalListByTs(st, et, dcs);
1077 1087  
  1088 + //创建excel工作簿
  1089 + Workbook wb = new HSSFWorkbook();
  1090 + Sheet sheet = wb.createSheet("到离站信息");
  1091 + //表头
  1092 + Row row = sheet.createRow(0);
  1093 + row.setHeight((short) (1.5 * 256));
  1094 + row.createCell(0).setCellValue("序号");
  1095 + row.createCell(1).setCellValue("车辆");
  1096 + row.createCell(2).setCellValue("牌照号");
  1097 + row.createCell(3).setCellValue("站名");
  1098 + row.createCell(4).setCellValue("时间");
  1099 + row.createCell(5).setCellValue("进/出站");
  1100 + //数据
  1101 + DateTimeFormatter fmtHHmmss = DateTimeFormat.forPattern("HH:mm.ss"), fmt = DateTimeFormat.forPattern("yyyyMMddHHmm");
  1102 + ArrivalEntity arrival;
  1103 + String prefix, stationName;
  1104 + for(int i = 0; i < list.size(); i ++){
  1105 + arrival = list.get(i);
  1106 + prefix = arrival.getLineCode() + "_" + arrival.getUpDown() + "_";
  1107 + stationName = BasicData.getStationNameByCode(arrival.getStopNo(), prefix);
  1108 + row = sheet.createRow(i + 1);
  1109 + row.createCell(0).setCellValue(i + 1);
  1110 + row.createCell(1).setCellValue(nbbm);
  1111 + row.createCell(2).setCellValue(BasicData.nbbmCompanyPlateMap.get(nbbm));
  1112 + row.createCell(3).setCellValue(stationName);
  1113 + row.createCell(4).setCellValue(fmtHHmmss.print(arrival.getTs()));
  1114 + row.createCell(5).setCellValue(arrival.getInOut() == 0 ? "进站" : "出站");
  1115 + }
  1116 +
  1117 + String filename = nbbm + "到离站数据" + fmt.print(st) + "至" + fmt.print(et) + ".xls";
  1118 + try {
  1119 + resp.setContentType("application/x-msdownload");
  1120 + resp.addHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
  1121 +
  1122 + OutputStream out=resp.getOutputStream();
  1123 + wb.write(out);
  1124 + out.flush();
  1125 + out.close();
  1126 + } catch (UnsupportedEncodingException e) {
  1127 + logger.error("", e);
  1128 + } catch (IOException e) {
  1129 + logger.error("", e);
  1130 + }
1078 1131 }
1079 1132  
1080 1133 @Override
... ...
src/main/resources/application-dev.properties
... ... @@ -20,7 +20,7 @@ spring.datasource.control.password= root2jsp
20 20 spring.datasource.control.type= com.zaxxer.hikari.HikariDataSource
21 21 #DATASOURCE
22 22 spring.datasource.control.hikari.minimum-idle= 8
23   -spring.datasource.control.hikari.maximum-pool-size= 100
  23 +spring.datasource.control.hikari.maximum-pool-size= 16
24 24 #spring.datasource.control.hikari.auto-commit= true
25 25 spring.datasource.control.hikari.idle-timeout= 60000
26 26 #spring.datasource.control.hikari.pool-name= HikariPool
... ... @@ -38,7 +38,7 @@ spring.datasource.info-publish.password= root2jsp
38 38 spring.datasource.info-publish.type= com.zaxxer.hikari.HikariDataSource
39 39 #DATASOURCE
40 40 spring.datasource.info-publish.hikari.minimum-idle= 8
41   -spring.datasource.info-publish.hikari.maximum-pool-size= 100
  41 +spring.datasource.info-publish.hikari.maximum-pool-size= 16
42 42 #spring.datasource.info-publish.hikari.auto-commit= true
43 43 spring.datasource.info-publish.hikari.idle-timeout= 60000
44 44 #spring.datasource.info-publish.hikari.pool-name= HikariPool
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
... ... @@ -53,7 +53,7 @@
53 53 <div class="uk-dropdown uk-dropdown-small">
54 54 <ul class="uk-nav uk-nav-dropdown">
55 55 <li><a class="export-excel-abnormal">导出异常数据</a></li>
56   - <!--<li><a class="export-excel-arrival">导出到离站数据</a></li>-->
  56 + <li><a class="export-excel-arrival">导出到离站数据</a></li>
57 57 </ul>
58 58 </div>
59 59 </div>
... ...