Commit b17080a8caeedf6b99f3a73c8079b0826d23e891
1 parent
686187b9
大间隔统计接口
Showing
1 changed file
with
185 additions
and
0 deletions
src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
| ... | ... | @@ -4,6 +4,7 @@ import java.math.BigDecimal; |
| 4 | 4 | import java.sql.ResultSet; |
| 5 | 5 | import java.sql.SQLException; |
| 6 | 6 | import java.text.DecimalFormat; |
| 7 | +import java.text.ParseException; | |
| 7 | 8 | import java.text.SimpleDateFormat; |
| 8 | 9 | import java.util.ArrayList; |
| 9 | 10 | import java.util.Date; |
| ... | ... | @@ -2120,6 +2121,190 @@ public class BigscreenService { |
| 2120 | 2121 | return list; |
| 2121 | 2122 | } |
| 2122 | 2123 | |
| 2124 | + /** 按日期查询所有线路大间隔情况 */ | |
| 2125 | + @GET | |
| 2126 | + @Path("/selectData/getLineInterval/{date}") | |
| 2127 | + public List<Map<String, Object>> getLineInterval(@PathParam("date") String date){ | |
| 2128 | + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | |
| 2129 | + | |
| 2130 | + String gsSql="SELECT business_name, business_code, up_code from bsth_c_business "; | |
| 2131 | + List<Map<String, Object>> gsList=jdbcTemplate.query(gsSql, | |
| 2132 | + new RowMapper<Map<String, Object>>(){ | |
| 2133 | + @Override | |
| 2134 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | |
| 2135 | + Map<String, Object> m=new HashMap<String,Object>(); | |
| 2136 | + m.put("name", rs.getString("business_name")!=null?rs.getString("business_name"):""); | |
| 2137 | + m.put("code", rs.getString("business_code")!=null?rs.getString("business_code"):""); | |
| 2138 | + m.put("upCode", rs.getString("up_code")!=null?rs.getString("up_code"):""); | |
| 2139 | + return m; | |
| 2140 | + } | |
| 2141 | + }); | |
| 2142 | + | |
| 2143 | + Map<String, Object> gsMap = new HashMap<String, Object>(); | |
| 2144 | + Map<String, Object> fgsMap = new HashMap<String, Object>(); | |
| 2145 | + for(Map<String, Object> m : gsList){ | |
| 2146 | + if(m.get("upCode") != null && m.get("upCode").toString().trim().length() > 0 | |
| 2147 | + && !("0".equals(m.get("upCode").toString().trim()))){ | |
| 2148 | + if("88".equals(m.get("upCode").toString().trim())){ | |
| 2149 | + gsMap.put(m.get("code").toString(), m.get("name").toString()); | |
| 2150 | + } else { | |
| 2151 | + fgsMap.put(m.get("code").toString()+"_"+m.get("upCode").toString(), m.get("name").toString()); | |
| 2152 | + } | |
| 2153 | + } | |
| 2154 | + } | |
| 2155 | + | |
| 2156 | + String calcIntervalSql = "select * from bsth_c_calc_interval where date = '"+date+"' and sfyy = 1"; | |
| 2157 | + List<Map<String, Object>> calcIntervalList=jdbcTemplate.query(calcIntervalSql, | |
| 2158 | + new RowMapper<Map<String, Object>>(){ | |
| 2159 | + @Override | |
| 2160 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | |
| 2161 | + Map<String, Object> m=new HashMap<String,Object>(); | |
| 2162 | + m.put("gsbm", rs.getString("gsbm")); | |
| 2163 | + m.put("fgsbm", rs.getString("fgsbm")); | |
| 2164 | + m.put("date", rs.getString("date")); | |
| 2165 | + m.put("xlBm", rs.getString("xl_bm")); | |
| 2166 | + m.put("xlName", rs.getString("xl_name")); | |
| 2167 | + m.put("level", rs.getString("level")); | |
| 2168 | + return m; | |
| 2169 | + } | |
| 2170 | + }); | |
| 2171 | + | |
| 2172 | + String calcIntervalDetailSql = "select * from bsth_c_calc_interval_detail where date = '"+date+"'"; | |
| 2173 | + List<Map<String, Object>> calcIntervalDetailList=jdbcTemplate.query(calcIntervalDetailSql, | |
| 2174 | + new RowMapper<Map<String, Object>>(){ | |
| 2175 | + @Override | |
| 2176 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | |
| 2177 | + Map<String, Object> m=new HashMap<String,Object>(); | |
| 2178 | + m.put("date", rs.getString("date")); | |
| 2179 | + m.put("xlBm", rs.getString("line_code")); | |
| 2180 | + m.put("xlName", rs.getString("line_name")); | |
| 2181 | + m.put("level", rs.getString("level")); | |
| 2182 | + m.put("station", rs.getString("station")); | |
| 2183 | + m.put("jhfc1", rs.getString("jhfc1")); | |
| 2184 | + m.put("sjfc1", rs.getString("sjfc1")); | |
| 2185 | + m.put("jhfc2", rs.getString("jhfc2")); | |
| 2186 | + m.put("sjfc2", rs.getString("sjfc2")); | |
| 2187 | + m.put("subTime", rs.getString("sub_time")); | |
| 2188 | + return m; | |
| 2189 | + } | |
| 2190 | + }); | |
| 2191 | + | |
| 2192 | + Map<String, Map<String, Object>> calcIntervalMap = new HashMap<String, Map<String, Object>>(); | |
| 2193 | + | |
| 2194 | + for(Map<String, Object> m : calcIntervalList){ | |
| 2195 | + calcIntervalMap.put(m.get("xlBm").toString(), m); | |
| 2196 | + } | |
| 2197 | + | |
| 2198 | + for(Map<String, Object> m : calcIntervalDetailList){ | |
| 2199 | + String xlBm = m.get("xlBm").toString(); | |
| 2200 | + if(calcIntervalMap.containsKey(xlBm)){ | |
| 2201 | + Map<String, Object> map = calcIntervalMap.get(xlBm); | |
| 2202 | + m.put("gs", gsMap.get(map.get("gsbm").toString())); | |
| 2203 | + m.put("fgs", fgsMap.get(map.get("fgsbm").toString() + "_" + map.get("gsbm").toString())); | |
| 2204 | + resList.add(m); | |
| 2205 | + } | |
| 2206 | + } | |
| 2207 | + | |
| 2208 | + return resList; | |
| 2209 | + } | |
| 2210 | + | |
| 2211 | + /** 按日期(加前7天共8天)查询所有线路大间隔次数 */ | |
| 2212 | + @GET | |
| 2213 | + @Path("/selectData/getLastWeekIntervalSum/{date}") | |
| 2214 | + public List<Map<String, Object>> getLastWeekIntervalSum(@PathParam("date") String date) throws ParseException{ | |
| 2215 | + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | |
| 2216 | + | |
| 2217 | + String gsSql="SELECT business_name, business_code, up_code from bsth_c_business "; | |
| 2218 | + List<Map<String, Object>> gsList=jdbcTemplate.query(gsSql, | |
| 2219 | + new RowMapper<Map<String, Object>>(){ | |
| 2220 | + @Override | |
| 2221 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | |
| 2222 | + Map<String, Object> m=new HashMap<String,Object>(); | |
| 2223 | + m.put("name", rs.getString("business_name")!=null?rs.getString("business_name"):""); | |
| 2224 | + m.put("code", rs.getString("business_code")!=null?rs.getString("business_code"):""); | |
| 2225 | + m.put("upCode", rs.getString("up_code")!=null?rs.getString("up_code"):""); | |
| 2226 | + return m; | |
| 2227 | + } | |
| 2228 | + }); | |
| 2229 | + Map<String, Object> gsMap = new HashMap<String, Object>(); | |
| 2230 | + for(Map<String, Object> m : gsList){ | |
| 2231 | + if(m.get("upCode") != null && m.get("upCode").toString().trim().length() > 0 | |
| 2232 | + && !("0".equals(m.get("upCode").toString().trim()))){ | |
| 2233 | + if("88".equals(m.get("upCode").toString().trim())){ | |
| 2234 | + gsMap.put(m.get("code").toString(), m.get("name").toString()); | |
| 2235 | + } | |
| 2236 | + } | |
| 2237 | + } | |
| 2238 | + | |
| 2239 | + String[] gsS = {gsMap.get("05").toString(), gsMap.get("55").toString(), gsMap.get("22").toString(), gsMap.get("26").toString()}; | |
| 2240 | + String[] levelS = {"A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "D", "E"}; | |
| 2241 | + List<String> keyList = new ArrayList<String>(); | |
| 2242 | + for(String gs : gsS){ | |
| 2243 | + for(String level : levelS){ | |
| 2244 | + keyList.add(gs + "_" + level); | |
| 2245 | + } | |
| 2246 | + } | |
| 2247 | + | |
| 2248 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | |
| 2249 | + for(long l = 7l; l >= 0l; l--){ | |
| 2250 | + Date d = sdf.parse(date); | |
| 2251 | + d.setTime(d.getTime() - l*1000*60*60*24); | |
| 2252 | + String date1 = sdf.format(d); | |
| 2253 | + | |
| 2254 | + String calcIntervalSql = "select * from bsth_c_calc_interval where date = '"+date1+"' and sfyy = 1"; | |
| 2255 | + List<Map<String, Object>> calcIntervalList=jdbcTemplate.query(calcIntervalSql, | |
| 2256 | + new RowMapper<Map<String, Object>>(){ | |
| 2257 | + @Override | |
| 2258 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | |
| 2259 | + Map<String, Object> m=new HashMap<String,Object>(); | |
| 2260 | + m.put("gsbm", rs.getString("gsbm")); | |
| 2261 | + m.put("fgsbm", rs.getString("fgsbm")); | |
| 2262 | + m.put("date", rs.getString("date")); | |
| 2263 | + m.put("level", rs.getString("level")); | |
| 2264 | + m.put("djgAll", rs.getString("djg_all")); | |
| 2265 | + m.put("djgZgf", rs.getString("djg_zgf")); | |
| 2266 | + m.put("djgWgf", rs.getString("djg_wgf")); | |
| 2267 | + m.put("djgDg", rs.getString("djg_dg")); | |
| 2268 | + return m; | |
| 2269 | + } | |
| 2270 | + }); | |
| 2271 | + | |
| 2272 | + Map<String, Map<String, Object>> keyMap = new HashMap<String, Map<String, Object>>(); | |
| 2273 | + for(Map<String, Object> m : calcIntervalList){ | |
| 2274 | + String gsName = gsMap.get(m.get("gsbm").toString()).toString(); | |
| 2275 | + String level = m.get("level").toString(); | |
| 2276 | + String key = gsName + "_" + level; | |
| 2277 | + if(!(keyMap.containsKey(key))){ | |
| 2278 | + Map<String, Object> map = new HashMap<String, Object>(); | |
| 2279 | + map.put("date", date1); | |
| 2280 | + map.put("gs", gsName); | |
| 2281 | + map.put("level", level); | |
| 2282 | + map.put("djgAll", 0); | |
| 2283 | + map.put("djgZgf", 0); | |
| 2284 | + map.put("djgWgf", 0); | |
| 2285 | + map.put("djgDg", 0); | |
| 2286 | + keyMap.put(key, map); | |
| 2287 | + } | |
| 2288 | + if(m.get("djgAll") != null && m.get("djgAll").toString().trim().length() > 0 | |
| 2289 | + && Long.valueOf(m.get("djgAll").toString()) > 0l){ | |
| 2290 | + Map<String, Object> map = keyMap.get(key); | |
| 2291 | + map.put("djgAll", Long.valueOf(map.get("djgAll").toString()) + Long.valueOf(m.get("djgAll").toString())); | |
| 2292 | + map.put("djgZgf", Long.valueOf(map.get("djgZgf").toString()) + Long.valueOf(m.get("djgZgf").toString())); | |
| 2293 | + map.put("djgWgf", Long.valueOf(map.get("djgWgf").toString()) + Long.valueOf(m.get("djgWgf").toString())); | |
| 2294 | + map.put("djgDg", Long.valueOf(map.get("djgDg").toString()) + Long.valueOf(m.get("djgDg").toString())); | |
| 2295 | + } | |
| 2296 | + } | |
| 2297 | + | |
| 2298 | + for(String key : keyList){ | |
| 2299 | + if(keyMap.containsKey(key)){ | |
| 2300 | + resList.add(keyMap.get(key)); | |
| 2301 | + } | |
| 2302 | + } | |
| 2303 | + } | |
| 2304 | + | |
| 2305 | + return resList; | |
| 2306 | + } | |
| 2307 | + | |
| 2123 | 2308 | public List<Map<String, Object>> createMap(String type, String[] dates){ |
| 2124 | 2309 | List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); |
| 2125 | 2310 | ... | ... |