Commit 04f60ca79a05969629ba73641090e56615b98091
1 parent
ce2c5420
给投控的接口更新,添加签卡率、每月的万公里
Showing
2 changed files
with
234 additions
and
5 deletions
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(){ |