Commit d8d6d9261666a344881b98e751c8cf85c077a237

Authored by 娄高锋
1 parent 719ddbb1

添加接口:按月份查询直属公司统计指标

src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
... ... @@ -249,6 +249,26 @@ public class BigscreenService {
249 249 }
250 250  
251 251  
  252 + String cardSignSql="select xl_bm,xl_name,schedule_date_str,bcs,qks,rkgzs,ckgzs"
  253 + + " from card_signing "
  254 + + " where schedule_date_str >= '"+date2+"' and schedule_date_str <= '"+date+"'";
  255 + List<Map<String, Object>> cardSignList=jdbcTemplate.query(cardSignSql,
  256 + new RowMapper<Map<String, Object>>(){
  257 + @Override
  258 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  259 + Map<String, Object> m=new HashMap<String,Object>();
  260 + m.put("lineCode",rs.getString("xl_bm"));
  261 + m.put("lineName", rs.getString("xl_name"));
  262 + m.put("date", rs.getString("schedule_date_str"));
  263 + m.put("bcs", rs.getString("bcs"));
  264 + m.put("qks", rs.getString("qks"));
  265 + m.put("rkgzs", rs.getString("rkgzs"));
  266 + m.put("ckgzs", rs.getString("ckgzs"));
  267 + return m;
  268 + }
  269 + });
  270 +
  271 +
252 272 String sql="select xl,xl_name,date,jhbc,bczxl,jhbcz,sjbc,jhcc,sjcc,ccl,jhccz,"
253 273 + " jhyylc,sjyylc,jhyylcz,jhkslc,sjkslc,jhkslcz,"
254 274 + " jhssgfbcs,sjgfbcs,jhgfbcsz,jhssdgbcs,sjdgbcs,jhdgbcsz,"
... ... @@ -318,11 +338,12 @@ public class BigscreenService {
318 338 List<Map<String, Object>> smList = createMap("首末班发车准点率", dates);
319 339 List<Map<String, Object>> qqList = createMap("起讫站发车准点率", dates);
320 340 List<Map<String, Object>> gpList = createMap("挂牌线路发车准点率", dates);
  341 + List<Map<String, Object>> qkList = createMap("签卡率", dates);
321 342  
322 343 long sjbcs_z = 0l;//实时总班次
323 344 BigDecimal yygl_z = new BigDecimal(0);//实时总营运里程
324 345 long jhcc = 0, sjcc = 0, jhbc = 0, sjbc = 0, jhsmbc = 0, sjsmbc = 0,
325   - jhqqbc = 0, sjqqzd = 0, jhgpqqbc = 0, sjgpqqzd = 0;
  346 + jhqqbc = 0, sjqqzd = 0, jhgpqqbc = 0, sjgpqqzd = 0, bcs_qk = 0, qks = 0;
326 347  
327 348 for(Map<String, Object> t : list){
328 349 if(yyLine.contains(t.get("lineCode").toString())){
... ... @@ -397,12 +418,26 @@ public class BigscreenService {
397 418 }
398 419 }
399 420  
  421 + for(Map<String, Object> t : cardSignList){
  422 + if(yyLine.contains(t.get("lineCode").toString())){
  423 + String d = t.get("date").toString();
  424 + if(date.equals(d)){
  425 + bcs_qk += Long.valueOf(t.get("bcs").toString());
  426 + qks += Long.valueOf(t.get("qks").toString());
  427 + }
  428 + Map<String, Object> qkMap = qkList.get(datesMap.get(d));
  429 + qkMap.put("jh", Long.valueOf(qkMap.get("jh").toString()) + Long.valueOf(t.get("bcs").toString()));
  430 + qkMap.put("sj", Long.valueOf(qkMap.get("sj").toString()) + Long.valueOf(t.get("qks").toString()));
  431 + }
  432 + }
  433 +
400 434 List<Map<String, Object>> zxlList = new ArrayList<Map<String, Object>>();
401 435 zxlList.addAll(ccList);
402 436 zxlList.addAll(bcList);
403 437 zxlList.addAll(smList);
404 438 zxlList.addAll(qqList);
405 439 zxlList.addAll(gpList);
  440 + zxlList.addAll(qkList);
406 441  
407 442 List<Map<String, Object>> detailsList = new ArrayList<Map<String, Object>>();
408 443 detailsList.addAll(bcDetail);
... ... @@ -527,11 +562,13 @@ public class BigscreenService {
527 562 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
528 563 resMap.put("bczxl", jhbc>0?new BigDecimal(sjbc).divide(new BigDecimal(jhbc),
529 564 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
530   - resMap.put("smbzdl", jhbc>0?new BigDecimal(sjsmbc).divide(new BigDecimal(jhsmbc),
  565 + resMap.put("smbzdl", jhsmbc>0?new BigDecimal(sjsmbc).divide(new BigDecimal(jhsmbc),
531 566 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
532   - resMap.put("qqzzdl", jhbc>0?new BigDecimal(sjqqzd).divide(new BigDecimal(jhqqbc),
  567 + resMap.put("qqzzdl", jhqqbc>0?new BigDecimal(sjqqzd).divide(new BigDecimal(jhqqbc),
533 568 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
534   - resMap.put("gpzdl", jhbc>0?new BigDecimal(sjgpqqzd).divide(new BigDecimal(jhgpqqbc),
  569 + resMap.put("gpzdl", jhgpqqbc>0?new BigDecimal(sjgpqqzd).divide(new BigDecimal(jhgpqqbc),
  570 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  571 + resMap.put("qkl", bcs_qk>0?new BigDecimal(qks).divide(new BigDecimal(bcs_qk),
535 572 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
536 573  
537 574 resMap.put("ratioList", zxlList);
... ... @@ -928,6 +965,171 @@ public class BigscreenService {
928 965 return JSON.parseObject(JSON.toJSONString(resMap));
929 966 }
930 967  
  968 + /** 按月份查询直属公司统计指标 */
  969 + @GET
  970 + @Path("/selectData/getMonthly/{gsdm}/{month}")
  971 + public JSONObject getMonthly(@PathParam("gsdm") String gsdm, @PathParam("month") String month){
  972 + Map<String, Object> resMap = new HashMap<String, Object>();
  973 +
  974 + String gpLineSql = "select * from bsth_c_line_plate";
  975 + List<Map<String, Object>> gpLineList=jdbcTemplate.query(gpLineSql,
  976 + new RowMapper<Map<String, Object>>(){
  977 + @Override
  978 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  979 + Map<String, Object> m=new HashMap<String,Object>();
  980 + m.put("lineName", rs.getString("line_name"));
  981 + m.put("lineCode", rs.getString("line_code"));
  982 + return m;
  983 + }
  984 + });
  985 +
  986 + Set<String> gpSet = new HashSet<String>();
  987 + for(Map<String, Object> t : gpLineList){
  988 + if(t.get("lineCode") != null && t.get("lineCode").toString().trim().length() > 0){
  989 + gpSet.add(t.get("lineCode").toString().trim());
  990 + }
  991 + }
  992 +
  993 +
  994 + String yyxlSql="SELECT line_code from bsth_c_line "
  995 + + " where nature in ('yxl','cgxl','gjxl','csbs','cctxl')";
  996 + List<Map<String, Object>> yyxlList=jdbcTemplate.query(yyxlSql,
  997 + new RowMapper<Map<String, Object>>(){
  998 + @Override
  999 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1000 + Map<String, Object> m=new HashMap<String,Object>();
  1001 + m.put("lineCode", rs.getString("line_code"));
  1002 + return m;
  1003 + }
  1004 + });
  1005 + Set<String> yyLine = new HashSet<String>();
  1006 + for(Map<String, Object> t : yyxlList){
  1007 + if(t.get("lineCode") != null){
  1008 + yyLine.add(t.get("lineCode").toString());
  1009 + }
  1010 + }
  1011 +
  1012 +
  1013 + String sql="select xl,xl_name,date,jhbc,bczxl,jhbcz,sjbc,jhcc,sjcc,ccl,jhccz,"
  1014 + + " jhyylc,sjyylc,jhyylcz,jhkslc,sjkslc,jhkslcz,"
  1015 + + " jhssgfbcs,sjgfbcs,jhgfbcsz,jhssdgbcs,sjdgbcs,jhdgbcsz,"
  1016 + + " jhsmbcs,sjsmbczds,smbczdl,jhsmbcsz,sjsmbczdsz,smbczdlz,"
  1017 + + " jhszfcs,sjszfczds,szfczdl,jhzgl,sjzgl,create_date"
  1018 + + " from bsth_c_calc_count "
  1019 + + " where gsdm = '"+gsdm+"' and date like '%"+month+"%'";
  1020 +
  1021 + List<Map<String, Object>> list=jdbcTemplate.query(sql,
  1022 + new RowMapper<Map<String, Object>>(){
  1023 + @Override
  1024 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1025 + Map<String, Object> m=new HashMap<String,Object>();
  1026 + m.put("lineCode",rs.getString("xl"));
  1027 + m.put("lineName", rs.getString("xl_name"));
  1028 + m.put("date", rs.getString("date"));
  1029 +
  1030 + m.put("jhbc", rs.getString("jhbc"));
  1031 + m.put("sjbc", rs.getString("sjbc"));
  1032 + m.put("bczxl", rs.getString("bczxl"));
  1033 + m.put("jhbcz", rs.getString("jhbcz"));
  1034 +
  1035 + m.put("jhcc", rs.getString("jhcc"));
  1036 + m.put("sjcc", rs.getString("sjcc"));
  1037 + m.put("ccl", rs.getString("ccl"));
  1038 + m.put("jhccz", rs.getString("jhccz"));
  1039 +
  1040 + m.put("jhyylc", rs.getString("jhyylc"));
  1041 + m.put("sjyylc", rs.getString("sjyylc"));
  1042 + m.put("jhyylcz", rs.getString("jhyylcz"));
  1043 + m.put("jhkslc", rs.getString("jhkslc"));
  1044 + m.put("sjkslc", rs.getString("sjkslc"));
  1045 + m.put("jhkslcz", rs.getString("jhkslcz"));
  1046 +
  1047 + m.put("jhgfbcs", rs.getString("jhssgfbcs"));
  1048 + m.put("sjgfbcs", rs.getString("sjgfbcs"));
  1049 + m.put("jhgfbcsz", rs.getString("jhgfbcsz"));
  1050 + m.put("jhdgbcs", rs.getString("jhssdgbcs"));
  1051 + m.put("sjdgbcs", rs.getString("sjdgbcs"));
  1052 + m.put("jhdgbcsz", rs.getString("jhdgbcsz"));
  1053 +
  1054 + m.put("jhsmbcs", rs.getString("jhsmbcs"));
  1055 + m.put("sjsmbczds", rs.getString("sjsmbczds"));
  1056 + m.put("smbczdl", rs.getString("smbczdl"));
  1057 + m.put("jhsmbcsz", rs.getString("jhsmbcsz"));
  1058 + m.put("sjsmbczdsz", rs.getString("sjsmbczdsz"));
  1059 + m.put("smbczdlz", rs.getString("smbczdlz"));
  1060 +
  1061 + m.put("jhszfcs", rs.getString("jhszfcs"));
  1062 + m.put("sjszfczds", rs.getString("sjszfczds"));
  1063 + m.put("szfczdl", rs.getString("szfczdl"));
  1064 +
  1065 + m.put("jhzgl", rs.getString("jhzgl"));
  1066 + m.put("sjzgl", rs.getString("sjzgl"));
  1067 +
  1068 + Date date = new Date();
  1069 + date.setTime(rs.getTimestamp("create_date").getTime());
  1070 + m.put("createDate", sdf.format(date));
  1071 + return m;
  1072 + }
  1073 + });
  1074 +
  1075 +
  1076 + BigDecimal jhzgl = new BigDecimal(0), sjzgl = new BigDecimal(0);//
  1077 + long jhcc = 0, sjcc = 0, jhbc = 0, sjbc = 0, jhsmbc = 0, sjsmbc = 0,
  1078 + jhqqbc = 0, sjqqzd = 0, jhgpqqbc = 0, sjgpqqzd = 0;
  1079 +
  1080 + for(Map<String, Object> t : list){
  1081 + if(yyLine.contains(t.get("lineCode").toString())){
  1082 +
  1083 + jhzgl = jhzgl.add(new BigDecimal(t.get("jhzgl").toString()));
  1084 + sjzgl = sjzgl.add(new BigDecimal(t.get("sjzgl").toString()));
  1085 +
  1086 + jhcc += Long.valueOf(t.get("jhccz").toString());
  1087 + sjcc += Long.valueOf(t.get("sjcc").toString());
  1088 + jhbc += Long.valueOf(t.get("jhbc").toString());
  1089 + sjbc += Long.valueOf(t.get("sjbc").toString());
  1090 + jhsmbc += Long.valueOf(t.get("jhsmbcs").toString());
  1091 + sjsmbc += Long.valueOf(t.get("sjsmbczds").toString());
  1092 + jhqqbc += Long.valueOf(t.get("jhszfcs").toString());
  1093 + sjqqzd += Long.valueOf(t.get("sjszfczds").toString());
  1094 + if(gpSet.contains(t.get("lineCode").toString())){
  1095 + jhgpqqbc += Long.valueOf(t.get("jhszfcs").toString());
  1096 + sjgpqqzd += Long.valueOf(t.get("sjszfczds").toString());
  1097 + }
  1098 +
  1099 + }
  1100 + }
  1101 +
  1102 + resMap.put("date", month);
  1103 +
  1104 + resMap.put("jhzgl", df.format(jhzgl));
  1105 + resMap.put("sjzgl", df.format(sjzgl));
  1106 + resMap.put("jhcc", jhcc);
  1107 + resMap.put("sjcc", sjcc);
  1108 + resMap.put("jhbc", jhbc);
  1109 + resMap.put("sjbc", sjbc);
  1110 + resMap.put("jhsm", jhsmbc);
  1111 + resMap.put("sjsm", sjsmbc);
  1112 + resMap.put("jhqq", jhqqbc);
  1113 + resMap.put("sjqq", sjqqzd);
  1114 + resMap.put("jhgp", jhgpqqbc);
  1115 + resMap.put("sjgp", sjgpqqzd);
  1116 +
  1117 + resMap.put("glzxl", jhzgl.doubleValue()>0?sjzgl.divide(jhzgl,
  1118 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1119 + resMap.put("ccl", jhcc>0?new BigDecimal(sjcc).divide(new BigDecimal(jhcc),
  1120 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1121 + resMap.put("bczxl", jhbc>0?new BigDecimal(sjbc).divide(new BigDecimal(jhbc),
  1122 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1123 + resMap.put("smbzdl", jhsmbc>0?new BigDecimal(sjsmbc).divide(new BigDecimal(jhsmbc),
  1124 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1125 + resMap.put("qqzzdl", jhqqbc>0?new BigDecimal(sjqqzd).divide(new BigDecimal(jhqqbc),
  1126 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1127 + resMap.put("gpzdl", jhgpqqbc>0?new BigDecimal(sjgpqqzd).divide(new BigDecimal(jhgpqqbc),
  1128 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1129 +
  1130 + return JSON.parseObject(JSON.toJSONString(resMap));
  1131 + }
  1132 +
931 1133 /** 按日期查询四家直属公司统计指标 */
932 1134 @GET
933 1135 @Path("/selectData/getCompanyData/{date}")
... ... @@ -1058,6 +1260,27 @@ public class BigscreenService {
1058 1260 });
1059 1261  
1060 1262  
  1263 + String cardSignSql="select gs_bm,xl_bm,xl_name,schedule_date_str,bcs,qks,rkgzs,ckgzs"
  1264 + + " from card_signing "
  1265 + + " where schedule_date_str = '"+date+"'";
  1266 + List<Map<String, Object>> cardSignList=jdbcTemplate.query(cardSignSql,
  1267 + new RowMapper<Map<String, Object>>(){
  1268 + @Override
  1269 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1270 + Map<String, Object> m=new HashMap<String,Object>();
  1271 + m.put("gs",rs.getString("gs_bm")!=null?gsMap.get(rs.getString("gs_bm")):"");
  1272 + m.put("lineCode",rs.getString("xl_bm"));
  1273 + m.put("lineName", rs.getString("xl_name"));
  1274 + m.put("date", rs.getString("schedule_date_str"));
  1275 + m.put("bcs", rs.getString("bcs"));
  1276 + m.put("qks", rs.getString("qks"));
  1277 + m.put("rkgzs", rs.getString("rkgzs"));
  1278 + m.put("ckgzs", rs.getString("ckgzs"));
  1279 + return m;
  1280 + }
  1281 + });
  1282 +
  1283 +
1061 1284 Map<String, Integer> sortMap = new HashMap<String, Integer>();
1062 1285 sortMap.put("杨高", 0);
1063 1286 sortMap.put("上南", 1);
... ... @@ -1118,6 +1341,23 @@ public class BigscreenService {
1118 1341 }
1119 1342 }
1120 1343  
  1344 + for(Map<String, Object> t : cardSignList){
  1345 + if(yyLine.contains(t.get("lineCode").toString())){
  1346 + if(sortMap.get(t.get("gs")) != null){
  1347 + Map<String, Object> m = resList.get(sortMap.get(t.get("gs")));
  1348 + mapPut(m, "bcs", t.get("bcs").toString());
  1349 + mapPut(m, "qks", t.get("qks").toString());
  1350 +// mapPut(m, "rkgzs", t.get("rkgzs").toString());
  1351 +// mapPut(m, "ckgzs", t.get("ckgzs").toString());
  1352 + }
  1353 +
  1354 + mapPut(pjMap, "bcs", t.get("bcs").toString());
  1355 + mapPut(pjMap, "qks", t.get("qks").toString());
  1356 +// mapPut(pjMap, "rkgzs", t.get("rkgzs").toString());
  1357 +// mapPut(pjMap, "ckgzs", t.get("ckgzs").toString());
  1358 + }
  1359 + }
  1360 +
1121 1361 for(Map<String, Object> m : resList){
1122 1362 m.put("date", date);
1123 1363  
... ... @@ -1139,6 +1379,9 @@ public class BigscreenService {
1139 1379 m.put("gpzdl", new BigDecimal(m.get("jhgpqqbc").toString()).doubleValue()>0?
1140 1380 new BigDecimal(m.get("sjgpqqzd").toString()).divide(new BigDecimal(m.get("jhgpqqbc").toString()),
1141 1381 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
  1382 + m.put("qkl", new BigDecimal(m.get("bcs").toString()).doubleValue()>0?
  1383 + new BigDecimal(m.get("qks").toString()).divide(new BigDecimal(m.get("bcs").toString()),
  1384 + 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).doubleValue():"0");
1142 1385 }
1143 1386  
1144 1387 return resList;
... ...