Commit b17080a8caeedf6b99f3a73c8079b0826d23e891

Authored by 娄高锋
1 parent 686187b9

大间隔统计接口

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  
... ...