Commit 51147647d1de2e85bd34523f99412e71edf3fa19

Authored by ljq
1 parent c2dfbe79

加入1、线路总数2、 在线车辆数3、 当日计划班次、当日完成班次4、 上一日班次执行率,首末班车准点率。4个接口

src/main/java/com/bsth/CXFConfig.java
... ... @@ -14,6 +14,7 @@ import com.bsth.server_rs.electric.ElectricService;
14 14 import com.bsth.server_rs.exception.AesExceptionMapper;
15 15 import com.bsth.server_rs.gps.GpsRestService;
16 16 import com.bsth.server_rs.logs.RealLogRestService;
  17 +import com.bsth.server_rs.number.NumberService;
17 18 import com.bsth.server_rs.schedule.plan.SchedulePlanService;
18 19 import com.bsth.server_rs.schedule.real.ScheduleRealService;
19 20 import com.bsth.server_rs.schedule.real.StaffViewRealService;
... ... @@ -113,6 +114,8 @@ public class CXFConfig {
113 114 @Autowired
114 115 BigdataService bigdataService;
115 116 @Autowired
  117 + NumberService numberService;
  118 + @Autowired
116 119 StaffViewRealService staffViewRealService;
117 120  
118 121 @Bean
... ... @@ -135,7 +138,8 @@ public class CXFConfig {
135 138 ld_roadSpeedRestService,
136 139 electricService,
137 140 staffViewRealService,
138   - bigdataService));
  141 + bigdataService,
  142 + numberService));
139 143 endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(), new AesExceptionMapper()));
140 144 //endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));
141 145 endpoint.getInInterceptors().add(new AuthorizeInterceptor_IN());
... ...
src/main/java/com/bsth/server_rs/number/NumberService.java 0 → 100644
  1 +package com.bsth.server_rs.number;
  2 +
  3 +import com.bsth.Application;
  4 +import com.bsth.server_rs.bigdata.BigdataService;
  5 +import com.bsth.server_rs.gps.GpsRestService;
  6 +import com.bsth.server_rs.gps.entity.GpsEntity;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.boot.CommandLineRunner;
  11 +import org.springframework.jdbc.core.JdbcTemplate;
  12 +import org.springframework.stereotype.Component;
  13 +import javax.ws.rs.GET;
  14 +import javax.ws.rs.Path;
  15 +import javax.ws.rs.Produces;
  16 +import javax.ws.rs.core.MediaType;
  17 +import java.text.SimpleDateFormat;
  18 +import java.util.*;
  19 +import java.util.concurrent.TimeUnit;
  20 +
  21 +@Component
  22 +@Path("/number")
  23 +@Produces({MediaType.APPLICATION_JSON})
  24 +public class NumberService implements CommandLineRunner{
  25 +
  26 + @Autowired
  27 + GpsRestService gpsRestService;
  28 + @Autowired
  29 + JdbcTemplate jdbcTemplate;
  30 + @Autowired
  31 + BigdataService bigdataService;
  32 + @Autowired
  33 + XlThread xlThread;
  34 +
  35 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  36 + Logger logger = LoggerFactory.getLogger(this.getClass());
  37 + /**
  38 + * 线路总数
  39 + * @return
  40 + */
  41 + @GET
  42 + @Path("/xlnum")
  43 + public Map lxnum() {
  44 + Map<String,Object> map = new HashMap<>();
  45 + XlThread x = new XlThread();
  46 + map = x.pule();
  47 + return map;
  48 + }
  49 +
  50 + /**
  51 + * 在线车辆数
  52 + * @return
  53 + */
  54 + @GET
  55 + @Path("/carnum")
  56 + public Map carnum(){
  57 + Map<String,Integer> map = new HashMap<>();
  58 + try {
  59 + Collection<GpsEntity> all = gpsRestService.findAll();
  60 + map.put("carnum", all.size());
  61 + }catch (Exception e){
  62 + logger.error("在线车辆数", e);
  63 + }
  64 + return map;
  65 +
  66 + }
  67 +
  68 + /**
  69 + * 当日计划班次、当日完成班次
  70 + * @return
  71 + */
  72 + @GET
  73 + @Path("/info")
  74 + public Map inforeal(){
  75 + Map<String,Integer> map = new HashMap<>();
  76 + try {
  77 + List<Map<String, Object>> list = bigdataService.findLineBcByDate("all",format.format(new Date()));
  78 + int jhnum = 0;
  79 + int sjnum = 0;
  80 + for(int i = 0;i < list.size() ;i++){
  81 + jhnum += Integer.parseInt(list.get(i).get("jhbc").toString());
  82 + sjnum += Integer.parseInt(list.get(i).get("sjbc").toString());
  83 + }
  84 +
  85 + map.put("jhnum",jhnum);
  86 + map.put("sjnum",sjnum);
  87 + }catch (Exception e){
  88 + logger.error("当日计划班次、当日完成班次", e);
  89 + }
  90 + return map;
  91 + }
  92 +
  93 + /**
  94 + * 上一日班次执行率,首末班车准点率
  95 + * @return
  96 + */
  97 + @GET
  98 + @Path("/fiducial")
  99 + public Map fiducial(){
  100 + Map<String,Double> map = new HashMap<>();
  101 + Calendar c = Calendar.getInstance();
  102 + c.setTime(new Date());
  103 + c.add(Calendar.DATE, -1);
  104 + Date start = c.getTime();
  105 + String qyt = format.format(start);//前
  106 + java.text.DecimalFormat myformat=new java.text.DecimalFormat("#0.00");//保留2为小数
  107 +
  108 + try {
  109 + List<Map<String, Object>> list = bigdataService.departureTime(qyt, qyt, "all");
  110 + double bczxl = 0d; //上一日班次执行率
  111 + double smbczdlz = 0d; //首末班车准点率
  112 + for (int i = 0; i < list.size(); i++) {
  113 + bczxl += Double.valueOf(list.get(i).get("bczxl").toString());
  114 + smbczdlz += Double.valueOf(list.get(i).get("smbczdlz").toString());
  115 + }
  116 + bczxl = bczxl / list.size();
  117 + smbczdlz = smbczdlz / list.size();
  118 + bczxl = Double.parseDouble(myformat.format(bczxl));//保留2为小数
  119 + smbczdlz = Double.parseDouble(myformat.format(smbczdlz));//保留2为小数
  120 +
  121 + map.put("bczxl", bczxl);
  122 + map.put("smbczdlz", smbczdlz);
  123 + }catch (Exception e){
  124 + logger.error("上一日班次执行率,首末班车准点率", e);
  125 + }
  126 + return map;
  127 + }
  128 +
  129 +
  130 + @Override
  131 + public void run(String... strings) throws Exception {
  132 + Application.mainServices.scheduleWithFixedDelay(xlThread, 10, 60 * 60, TimeUnit.SECONDS);//查询线路总数
  133 + }
  134 +}
... ...
src/main/java/com/bsth/server_rs/number/XlThread.java 0 → 100644
  1 +package com.bsth.server_rs.number;
  2 +
  3 +import org.slf4j.Logger;
  4 +import org.slf4j.LoggerFactory;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.jdbc.core.JdbcTemplate;
  7 +import org.springframework.jdbc.core.RowMapper;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import java.sql.ResultSet;
  11 +import java.sql.SQLException;
  12 +import java.text.SimpleDateFormat;
  13 +import java.util.*;
  14 +@Component
  15 +public class XlThread extends Thread {
  16 +
  17 + @Autowired
  18 + JdbcTemplate jdbcTemplate;
  19 +
  20 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  21 +
  22 + private static Map<String,Object> xlmap ;
  23 + Logger logger = LoggerFactory.getLogger(this.getClass());
  24 +
  25 + public Map pule(){
  26 + return xlmap;
  27 + }
  28 +
  29 + @Override
  30 + public void run() {
  31 + Calendar c = Calendar.getInstance();
  32 + Map<String,Object> map = new HashMap<>();
  33 + c.setTime(new Date());
  34 + c.add(Calendar.DATE, -1);
  35 + Date start = c.getTime();
  36 + String qyt = format.format(start);//前
  37 + try {
  38 + String sql = "select id from bsth_c_s_sp_info_real where real_exec_date ='" + qyt + "' GROUP BY xl_bm";
  39 + List<Map<String, Object>> list = jdbcTemplate.query(sql,
  40 + new RowMapper<Map<String, Object>>() {
  41 + @Override
  42 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  43 + Map<String, Object> m = new HashMap<String, Object>();
  44 + m.put("id", rs.getString("id"));
  45 + return m;
  46 + }
  47 + });
  48 + map.put("xlnum", list.size());
  49 + xlmap = map;
  50 + }catch (Exception e){
  51 + logger.error("线路总数", e);
  52 + }
  53 + super.run();
  54 + }
  55 +}
... ...