Commit 04f60ca79a05969629ba73641090e56615b98091

Authored by 娄高锋
1 parent ce2c5420

给投控的接口更新,添加签卡率、每月的万公里

src/main/java/com/bsth/server_rs/bigdata/BigdataService.java
@@ -1520,6 +1520,7 @@ public class BigdataService { @@ -1520,6 +1520,7 @@ public class BigdataService {
1520 public Map<String, Object> findMileageByYear(@PathParam("year") String year) { 1520 public Map<String, Object> findMileageByYear(@PathParam("year") String year) {
1521 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 1521 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
1522 SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy"); 1522 SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy");
  1523 + SimpleDateFormat monFormat = new SimpleDateFormat("MM");
1523 Map<String, Object> resMap = new HashMap<String, Object>(); 1524 Map<String, Object> resMap = new HashMap<String, Object>();
1524 try { 1525 try {
1525 logger.info(year); 1526 logger.info(year);
@@ -1530,28 +1531,44 @@ public class BigdataService { @@ -1530,28 +1531,44 @@ public class BigdataService {
1530 List<String> strList = new ArrayList<>(); 1531 List<String> strList = new ArrayList<>();
1531 strList.add(date1); 1532 strList.add(date1);
1532 strList.add(date2); 1533 strList.add(date2);
1533 - String sql = "select sjzgl from bsth_c_calc_count " 1534 + String sql = "select date,sjzgl from bsth_c_calc_count "
1534 + "where date >= ? and date <= ? "; 1535 + "where date >= ? and date <= ? ";
1535 - logger.info(sql);  
1536 - logger.info(date1 + "><" + date2); 1536 +// logger.info(sql);
  1537 +// logger.info(date1 + "><" + date2);
1537 List<Map<String, Object>> list=jdbcTemplate.query(sql, strList.toArray(), 1538 List<Map<String, Object>> list=jdbcTemplate.query(sql, strList.toArray(),
1538 new RowMapper<Map<String, Object>>(){ 1539 new RowMapper<Map<String, Object>>(){
1539 @Override 1540 @Override
1540 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { 1541 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
1541 Map<String, Object> m=new HashMap<String,Object>(); 1542 Map<String, Object> m=new HashMap<String,Object>();
  1543 + m.put("date", rs.getString("date"));
1542 m.put("sjzgl", rs.getString("sjzgl")); 1544 m.put("sjzgl", rs.getString("sjzgl"));
1543 return m; 1545 return m;
1544 } 1546 }
1545 }); 1547 });
1546 1548
1547 BigDecimal zgl = new BigDecimal(0); 1549 BigDecimal zgl = new BigDecimal(0);
1548 - logger.info(list.size()+""); 1550 +// logger.info(list.size()+"");
  1551 + HashMap<String, BigDecimal> monMap = new HashMap<String, BigDecimal>();
1549 for(Map<String, Object> m : list){ 1552 for(Map<String, Object> m : list){
1550 if(m.containsKey("sjzgl") && m.get("sjzgl").toString().length() > 0){ 1553 if(m.containsKey("sjzgl") && m.get("sjzgl").toString().length() > 0){
1551 - zgl = zgl.add(new BigDecimal(m.get("sjzgl").toString())); 1554 + try {
  1555 + Date dd = dateFormat.parse(m.get("date").toString());
  1556 + String mon = "mon" + Integer.valueOf(monFormat.format(dd));
  1557 + monMap.put(mon, new BigDecimal(monMap.containsKey(mon)?monMap.get(mon).toString():"0")
  1558 + .add(new BigDecimal(m.get("sjzgl").toString())));
  1559 + zgl = zgl.add(new BigDecimal(m.get("sjzgl").toString()));
  1560 + } catch (Exception e) {
  1561 + continue;
  1562 + }
1552 } 1563 }
1553 } 1564 }
1554 resMap.put("mileage", zgl.divide(new BigDecimal(10000), 3, BigDecimal.ROUND_HALF_UP).doubleValue()); 1565 resMap.put("mileage", zgl.divide(new BigDecimal(10000), 3, BigDecimal.ROUND_HALF_UP).doubleValue());
  1566 +
  1567 + for(int i = 1; i <= 12; i++){
  1568 + String mon = "mon" + i;
  1569 + resMap.put(mon, monMap.containsKey(mon)?monMap.get(mon)
  1570 + .divide(new BigDecimal(10000), 3, BigDecimal.ROUND_HALF_UP).doubleValue():0);
  1571 + }
1555 } catch (Exception e) { 1572 } catch (Exception e) {
1556 // TODO: handle exception 1573 // TODO: handle exception
1557 e.printStackTrace(); 1574 e.printStackTrace();
src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
@@ -1236,6 +1236,218 @@ public class BigscreenService { @@ -1236,6 +1236,218 @@ public class BigscreenService {
1236 return JSON.parseObject(JSON.toJSONString(resMap)); 1236 return JSON.parseObject(JSON.toJSONString(resMap));
1237 } 1237 }
1238 1238
  1239 + /**临港给投控的指标接口(周文彬)
  1240 + * 出车率(资料上没有要出车率,要到站准点率但是这里没有),班次执行率,起讫站准点率,首末班车准点率,挂牌线路准点率,签卡率
  1241 + */
  1242 + @GET
  1243 + @Path("/selectData/getPercentageByDate/{date}")
  1244 + public JSONObject getPercentageByDate(@PathParam("date") String date){
  1245 + Map<String, Object> resMap = new HashMap<String, Object>();
  1246 +
  1247 + String gpLineSql = "select * from bsth_c_line_plate";
  1248 + List<Map<String, Object>> gpLineList=jdbcTemplate.query(gpLineSql,
  1249 + new RowMapper<Map<String, Object>>(){
  1250 + @Override
  1251 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1252 + Map<String, Object> m=new HashMap<String,Object>();
  1253 + m.put("lineName", rs.getString("line_name"));
  1254 + m.put("lineCode", rs.getString("line_code"));
  1255 + return m;
  1256 + }
  1257 + });
  1258 +
  1259 + Set<String> gpSet = new HashSet<String>();
  1260 + for(Map<String, Object> t : gpLineList){
  1261 + if(t.get("lineCode") != null && t.get("lineCode").toString().trim().length() > 0){
  1262 + gpSet.add(t.get("lineCode").toString().trim());
  1263 + }
  1264 + }
  1265 +
  1266 + String yyxlSql="SELECT line_code from bsth_c_line "
  1267 + + " where nature in ('yxl','cgxl','gjxl','csbs','cctxl')";
  1268 + List<Map<String, Object>> yyxlList=jdbcTemplate.query(yyxlSql,
  1269 + new RowMapper<Map<String, Object>>(){
  1270 + @Override
  1271 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1272 + Map<String, Object> m=new HashMap<String,Object>();
  1273 + m.put("lineCode", rs.getString("line_code"));
  1274 + return m;
  1275 + }
  1276 + });
  1277 + Set<String> yyLine = new HashSet<String>();
  1278 + for(Map<String, Object> t : yyxlList){
  1279 + if(t.get("lineCode") != null){
  1280 + yyLine.add(t.get("lineCode").toString());
  1281 + }
  1282 + }
  1283 +
  1284 + String sql="select xl,xl_name,date,jhbc,bczxl,jhbcz,sjbc,jhcc,sjcc,ccl,"
  1285 + + " jhyylc,sjyylc,jhyylcz,jhkslc,sjkslc,jhkslcz,"
  1286 + + " jhssgfbcs,sjgfbcs,jhgfbcsz,jhssdgbcs,sjdgbcs,jhdgbcsz,"
  1287 + + " jhsmbcs,sjsmbczds,smbczdl,jhsmbcsz,sjsmbczdsz,smbczdlz,"
  1288 + + " jhszfcs,sjszfczds,szfczdl,create_date"
  1289 + + " from bsth_c_calc_count "
  1290 + + " where date = ? ";
  1291 +
  1292 + List<Map<String, Object>> list=jdbcTemplate.query(sql, new Object[]{date},
  1293 + new RowMapper<Map<String, Object>>(){
  1294 + @Override
  1295 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1296 + Map<String, Object> m=new HashMap<String,Object>();
  1297 + m.put("lineCode",rs.getString("xl"));
  1298 + m.put("lineName", rs.getString("xl_name"));
  1299 + m.put("date", rs.getString("date"));
  1300 +
  1301 + m.put("jhbc", rs.getString("jhbc"));
  1302 + m.put("sjbc", rs.getString("sjbc"));
  1303 + m.put("bczxl", rs.getString("bczxl"));
  1304 + m.put("jhbcz", rs.getString("jhbcz"));
  1305 +
  1306 + m.put("jhcc", rs.getString("jhcc"));
  1307 + m.put("sjcc", rs.getString("sjcc"));
  1308 + m.put("ccl", rs.getString("ccl"));
  1309 +
  1310 + m.put("jhyylc", rs.getString("jhyylc"));
  1311 + m.put("sjyylc", rs.getString("sjyylc"));
  1312 + m.put("jhyylcz", rs.getString("jhyylcz"));
  1313 + m.put("jhkslc", rs.getString("jhkslc"));
  1314 + m.put("sjkslc", rs.getString("sjkslc"));
  1315 + m.put("jhkslcz", rs.getString("jhkslcz"));
  1316 +
  1317 + m.put("jhgfbcs", rs.getString("jhssgfbcs"));
  1318 + m.put("sjgfbcs", rs.getString("sjgfbcs"));
  1319 + m.put("jhgfbcsz", rs.getString("jhgfbcsz"));
  1320 + m.put("jhdgbcs", rs.getString("jhssdgbcs"));
  1321 + m.put("sjdgbcs", rs.getString("sjdgbcs"));
  1322 + m.put("jhdgbcsz", rs.getString("jhdgbcsz"));
  1323 +
  1324 + m.put("jhsmbcs", rs.getString("jhsmbcs"));
  1325 + m.put("sjsmbczds", rs.getString("sjsmbczds"));
  1326 + m.put("smbczdl", rs.getString("smbczdl"));
  1327 + m.put("jhsmbcsz", rs.getString("jhsmbcsz"));
  1328 + m.put("sjsmbczdsz", rs.getString("sjsmbczdsz"));
  1329 + m.put("smbczdlz", rs.getString("smbczdlz"));
  1330 +
  1331 + m.put("jhszfcs", rs.getString("jhszfcs"));
  1332 + m.put("sjszfczds", rs.getString("sjszfczds"));
  1333 + m.put("szfczdl", rs.getString("szfczdl"));
  1334 +
  1335 + Date date = new Date();
  1336 + date.setTime(rs.getTimestamp("create_date").getTime());
  1337 + m.put("createDate", sdf.format(date));
  1338 + return m;
  1339 + }
  1340 + });
  1341 +
  1342 + List<Map<String, Object>> ccDetail = new ArrayList<Map<String,Object>>();
  1343 + List<Map<String, Object>> bcDetail = new ArrayList<Map<String,Object>>();
  1344 + List<Map<String, Object>> smDetail = new ArrayList<Map<String,Object>>();
  1345 + List<Map<String, Object>> qqDetail = new ArrayList<Map<String,Object>>();
  1346 + List<Map<String, Object>> gpDetail = new ArrayList<Map<String,Object>>();
  1347 +
  1348 + long sjbcs_z = 0l;//实时总班次
  1349 + long jhcc = 0, sjcc = 0, jhbc = 0, sjbc = 0, jhsmbc = 0, sjsmbc = 0,
  1350 + jhqqbc = 0, sjqqzd = 0, jhgpqqbc = 0, sjgpqqzd = 0, bcs_qk = 0, qks = 0;
  1351 +
  1352 + for(Map<String, Object> t : list){
  1353 + if(yyLine.contains(t.get("lineCode").toString())){
  1354 + sjbcs_z += Long.valueOf(t.get("sjbc").toString());
  1355 +
  1356 + jhcc += Long.valueOf(t.get("jhcc").toString());
  1357 + sjcc += Long.valueOf(t.get("sjcc").toString());
  1358 + jhbc += Long.valueOf(t.get("jhbc").toString());
  1359 + sjbc += Long.valueOf(t.get("sjbc").toString());
  1360 + jhsmbc += Long.valueOf(t.get("jhsmbcs").toString());
  1361 + sjsmbc += Long.valueOf(t.get("sjsmbczds").toString());
  1362 + jhqqbc += Long.valueOf(t.get("jhszfcs").toString());
  1363 + sjqqzd += Long.valueOf(t.get("sjszfczds").toString());
  1364 + if(gpSet.contains(t.get("lineCode").toString())){
  1365 + jhgpqqbc += Long.valueOf(t.get("jhszfcs").toString());
  1366 + sjgpqqzd += Long.valueOf(t.get("sjszfczds").toString());
  1367 + }
  1368 +
  1369 + Map<String, Object> cc = new HashMap<String, Object>();
  1370 + cc.put("type", "线路出车详情");
  1371 + cc.put("lineName", t.get("lineName").toString());
  1372 + cc.put("jh", t.get("jhcc").toString());
  1373 + cc.put("sj", t.get("sjcc").toString());
  1374 + ccDetail.add(cc);
  1375 +
  1376 + Map<String, Object> bc = new HashMap<String, Object>();
  1377 + bc.put("type", "班次执行详情");
  1378 + bc.put("lineName", t.get("lineName").toString());
  1379 + bc.put("jh", t.get("jhbc").toString());
  1380 + bc.put("sj", t.get("sjbc").toString());
  1381 + bcDetail.add(bc);
  1382 +
  1383 + Map<String, Object> sm = new HashMap<String, Object>();
  1384 + sm.put("type", "首站发车详情");
  1385 + sm.put("lineName", t.get("lineName").toString());
  1386 + sm.put("jh", t.get("jhsmbcs").toString());
  1387 + sm.put("sj", t.get("sjsmbczds").toString());
  1388 + smDetail.add(sm);
  1389 +
  1390 + Map<String, Object> qq = new HashMap<String, Object>();
  1391 + qq.put("type", "起讫站发车准点详情");
  1392 + qq.put("lineName", t.get("lineName").toString());
  1393 + qq.put("jh", t.get("jhszfcs").toString());
  1394 + qq.put("sj", t.get("sjszfczds").toString());
  1395 + qqDetail.add(qq);
  1396 +
  1397 + if(gpSet.contains(t.get("lineCode").toString())){
  1398 + Map<String, Object> gp = new HashMap<String, Object>();
  1399 + gp.put("type", "挂牌线路发车准点详情");
  1400 + gp.put("lineName", t.get("lineName").toString());
  1401 + gp.put("jh", t.get("jhszfcs").toString());
  1402 + gp.put("sj", t.get("sjszfczds").toString());
  1403 + gpDetail.add(gp);
  1404 + }
  1405 + }
  1406 + }
  1407 +
  1408 + if(date!=null && date.trim().length() > 0){
  1409 + List<ScheduleRealInfo> findAll = scheduleRealInfoRepository.findAll(date);
  1410 + long jh = 0, sj = 0;
  1411 + for(ScheduleRealInfo s : findAll){
  1412 + if(s.getXlBm() != null && yyLine.contains(s.getXlBm())){//营运线路
  1413 + if(!isInOut(s) && !s.isCcService() && s.getStatus() != -1 && s.getStatus() != 0){
  1414 + ++jh;
  1415 + String sty = decimalToBinary(s.getRfidState());
  1416 + Integer state = Integer.parseInt(sty);
  1417 + if ((state & 4) == 4) {
  1418 + ++sj;
  1419 + }
  1420 + }
  1421 + }
  1422 + }
  1423 + bcs_qk = jh;
  1424 + qks = sj;
  1425 + }
  1426 +
  1427 +// List<Map<String, Object>> detailsList = new ArrayList<Map<String, Object>>();
  1428 +// detailsList.addAll(ccDetail);
  1429 +// detailsList.addAll(bcDetail);
  1430 +// detailsList.addAll(smDetail);
  1431 +// detailsList.addAll(qqDetail);
  1432 +// detailsList.addAll(gpDetail);
  1433 +// resMap.put("detailsList", detailsList);
  1434 +
  1435 + resMap.put("ccl", jhcc>0?new BigDecimal(sjcc).divide(new BigDecimal(jhcc),
  1436 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1437 + resMap.put("bczxl", jhbc>0?new BigDecimal(sjbc).divide(new BigDecimal(jhbc),
  1438 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1439 + resMap.put("smbzdl", jhsmbc>0?new BigDecimal(sjsmbc).divide(new BigDecimal(jhsmbc),
  1440 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1441 + resMap.put("qqzzdl", jhqqbc>0?new BigDecimal(sjqqzd).divide(new BigDecimal(jhqqbc),
  1442 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1443 + resMap.put("gpzdl", jhgpqqbc>0?new BigDecimal(sjgpqqzd).divide(new BigDecimal(jhgpqqbc),
  1444 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1445 + resMap.put("qkl", bcs_qk>0?new BigDecimal(qks).divide(new BigDecimal(bcs_qk),
  1446 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1447 +
  1448 + return JSON.parseObject(JSON.toJSONString(resMap));
  1449 + }
  1450 +
1239 @GET 1451 @GET
1240 @Path("/selectData/attendance") 1452 @Path("/selectData/attendance")
1241 public JSONObject attendance(){ 1453 public JSONObject attendance(){