Commit 7e002204f36b629c9dd79a091a298d6c6b008c43

Authored by 娄高锋
1 parent 0a494b99

云平台数据对接(实际排班,空驶里程,烂班里程)

src/main/java/com/bsth/realschedule/BackClass.java 0 → 100644
  1 +package com.bsth.realschedule;
  2 +
  3 +import java.io.UnsupportedEncodingException;
  4 +import java.util.Date;
  5 +import java.util.HashMap;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +
  12 +import com.alibaba.fastjson.JSON;
  13 +import com.bsth.utils.CallBack;
  14 +
  15 +public class BackClass implements CallBack {
  16 +
  17 + Logger logger = LoggerFactory.getLogger(this.getClass());
  18 +
  19 + @Override
  20 + public void success(byte[] bytes, Map<String, List<String>> header) {
  21 + // TODO Auto-generated method stub
  22 + Map<String, Object> map = new HashMap<String, Object>();
  23 + try {
  24 + System.out.println("返回如下:");
  25 + System.out.println(new String(bytes, "utf-8"));
  26 + logger.info("上传返回:" + new String(bytes, "utf-8"));
  27 + } catch (UnsupportedEncodingException e) {
  28 + // TODO Auto-generated catch block
  29 + System.out.println("返回内容:" + bytes);
  30 + logger.info("返回内容:" + bytes.toString());
  31 + }
  32 + System.out.println(map);
  33 + logger.info(map.toString());
  34 + }
  35 +
  36 + @Override
  37 + public void failed() {
  38 + // TODO Auto-generated method stub
  39 + System.out.println("上传失败!("+new Date().getTime()+")");
  40 + logger.error("上传失败!("+new Date().getTime()+")");
  41 + }
  42 +
  43 +}
src/main/java/com/bsth/realschedule/DataUpload.java 0 → 100644
  1 +package com.bsth.realschedule;
  2 +
  3 +import java.io.BufferedReader;
  4 +import java.io.InputStreamReader;
  5 +import java.net.HttpURLConnection;
  6 +import java.net.URL;
  7 +import java.net.URLEncoder;
  8 +import java.security.MessageDigest;
  9 +import java.text.SimpleDateFormat;
  10 +import java.util.ArrayList;
  11 +import java.util.Collections;
  12 +import java.util.Comparator;
  13 +import java.util.Date;
  14 +import java.util.HashMap;
  15 +import java.util.HashSet;
  16 +import java.util.List;
  17 +import java.util.Map;
  18 +import java.util.Set;
  19 +import org.slf4j.Logger;
  20 +import org.slf4j.LoggerFactory;
  21 +import org.springframework.scheduling.annotation.Scheduled;
  22 +import org.springframework.stereotype.Component;
  23 +
  24 +import com.alibaba.fastjson.JSON;
  25 +import com.alibaba.fastjson.JSONObject;
  26 +import com.bsth.utils.Arith;
  27 +import com.bsth.utils.HttpUtils;
  28 +
  29 +/**
  30 + *
  31 + * @author LGF
  32 + *
  33 + */
  34 +
  35 +@Component
  36 +public class DataUpload {
  37 +
  38 + private final static Logger logger = LoggerFactory.getLogger(com.bsth.realschedule.DataUpload.class.getName());
  39 +
  40 +// private final static String ip = "114.80.178.12:9089";
  41 + private final static String ip = "10.10.150.24:9089";
  42 +
  43 + /**
  44 + * 实际排班信息(BusDispatch_TodayBusLineScheduleInfo)
  45 + * 云平台数据需求对接(建交委)
  46 + * @throws Exception
  47 + */
  48 + @Scheduled(cron = "0 00 06 * * ? ")
  49 + public void realScheduleUpload() throws Exception{
  50 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  51 + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
  52 + long ts=new Date().getTime();
  53 + StringBuffer hexstr = new StringBuffer();
  54 + MessageDigest md = MessageDigest.getInstance("SHA-1");
  55 + String str = ts+"7da994576ccbe6ea1f8e83936d4da84820756b3a"+"a1503";
  56 + md.update(str.getBytes());
  57 + byte[] digest = md.digest();
  58 + String shaHex = "";
  59 + for (int i = 0; i < digest.length; i++) {
  60 + shaHex = Integer.toHexString(digest[i] & 0xFF);
  61 + if (shaHex.length() < 2) {
  62 + hexstr.append(0);
  63 + }
  64 + hexstr.append(shaHex);
  65 + }
  66 + String sign =hexstr.toString();
  67 +
  68 + String[] strs = {"55", "22", "05", "26"};
  69 + String rq = sdf2.format(sdf2.parse("20200820"));
  70 + String accessToken = "abfed98867c64fde99f7f88a4532efa8";
  71 +
  72 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  73 +
  74 + for(int s = 0; s < strs.length; s++){
  75 + String company = strs[s];
  76 +
  77 + String carJson= getHttpInterface("http://"+ip+"/webservice/rest/car/company/"+company+"?timestamp="+ts+"&nonce=a1503&password=7da994576ccbe6ea1f8e83936d4da84820756b3a&sign="+sign);
  78 + List<Map<String, Object>> list_car=(List<Map<String, Object>>) JSONObject.parse(carJson);
  79 +
  80 + String json= getHttpInterface("http://"+ip+"/webservice/rest/schedule_real/sch_jk/"+company+"/"+rq+"?timestamp="+ts+"&nonce=a1503&password=7da994576ccbe6ea1f8e83936d4da84820756b3a&sign="+sign);
  81 + List<Map<String, Object>> list_map=(List<Map<String, Object>>) JSONObject.parse(json);
  82 +
  83 + Map<String, Map<String, Object>> carMap = new HashMap<String, Map<String, Object>>();
  84 + for(Map<String, Object> m : list_car){
  85 + carMap.put(m.get("nbbm").toString(), m);
  86 + }
  87 +
  88 + Map<String, List<Map<String, Object>>> keyMap = new HashMap<String, List<Map<String,Object>>>();
  89 + List<String> keyList = new ArrayList<String>();
  90 +
  91 + for(Map<String, Object> m : list_map){
  92 + // System.out.println(m.get("scheduleDate") +" / " + m.get("lineName") +" / " + m.get("nbbm") + " / " + m.get("fcsjT"));
  93 + String date = m.get("scheduleDate").toString();
  94 + String lineCode = m.get("lineCode").toString();
  95 + String lpName = m.get("lpName").toString();
  96 + String nbbm = m.get("nbbm").toString();
  97 +
  98 + String key = date + "/" + lineCode + "/" + nbbm + "/" + lpName;
  99 +
  100 + if(keyMap.containsKey(key)){
  101 + keyMap.get(key).add(m);
  102 + } else {
  103 + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  104 + list.add(m);
  105 + keyMap.put(key, list);
  106 + keyList.add(key);
  107 + }
  108 + }
  109 +
  110 + for(String key : keyList){
  111 + List<Map<String, Object>> list = keyMap.get(key);
  112 + Collections.sort(list, new Comparator<Map<String, Object>>() {
  113 + @Override
  114 + public int compare(Map<String, Object> c1, Map<String, Object> c2) {
  115 +
  116 + long l1 = c1.get("fcsjT")!=null?Long.valueOf(c1.get("fcsjT").toString()):9000000000000000000l;
  117 + long l2 = c2.get("fcsjT")!=null?Long.valueOf(c2.get("fcsjT").toString()):9000000000000000000l;
  118 +
  119 + long diff = l1 - l2;
  120 + if (diff > 0l) {
  121 + return 1;
  122 + }else if (diff < 0l) {
  123 + return -1;
  124 + }
  125 + return 0; //相等为0
  126 + }
  127 + });
  128 +
  129 + Map<String, Object> m = new HashMap<String, Object>();
  130 + m.put("ScheduleDate", sdf.parse(list.get(0).get("scheduleDate").toString()));
  131 + m.put("BusLineCode", list.get(0).get("lineCode"));
  132 + m.put("BusLineName", list.get(0).get("lineName"));
  133 + m.put("TemplateID", "");
  134 + m.put("MainBusID", "");
  135 + m.put("MainBusCode", "");
  136 + m.put("MainBusNumber", "");//牌照号
  137 + m.put("MainBusCompanyNumber", list.get(0).get("nbbm"));
  138 + m.put("TerminalCode", "");//终端编码
  139 + m.put("GuideBoardID", "");
  140 + m.put("GuideBoardName", list.get(0).get("lpName"));
  141 +
  142 + if(carMap.containsKey(list.get(0).get("nbbm").toString())){
  143 + Map<String, Object> map = carMap.get(list.get(0).get("nbbm").toString());
  144 + m.put("MainBusNumber", map.get("carPlate")!=null?map.get("carPlate").toString():"");//牌照号
  145 + m.put("TerminalCode", map.get("equipmentCode")!=null?map.get("equipmentCode").toString():"");//终端编码
  146 + }
  147 +
  148 + Set<String> jsySpy = new HashSet<String>();
  149 + List<String> strList = new ArrayList<String>();
  150 + // System.out.println("-------------------------");
  151 + for(Map<String, Object> temp : list){
  152 + String jsy = temp.get("jsy")!=null?temp.get("jsy").toString():"";
  153 + String spy = temp.get("spy")!=null?temp.get("spy").toString():"";
  154 + if(jsySpy.add(jsy + "_" + spy)){
  155 + strList.add(jsy + "_" + spy);
  156 + // System.out.println(temp.get("fcsjT"));
  157 + }
  158 + }
  159 +
  160 + for(int i = 1; i <= 3; i++){
  161 + m.put("DriverEmpCode" + i, "");
  162 + m.put("ConductorEmpCode" + i, "");
  163 + if(strList.size() >= i){
  164 + String string = strList.get(i - 1);
  165 + String[] split = string.split("_");
  166 + if(split[0].length() > 1 && split[0].contains("/")){
  167 + String[] jsy = split[0].split("/");
  168 + m.put("DriverEmpName" + i, jsy[1]);
  169 + m.put("DriverEmpNumber" + i, jsy[0]);
  170 + } else {
  171 + m.put("DriverEmpName" + i, "");
  172 + m.put("DriverEmpNumber" + i, "");
  173 + }
  174 + if(split.length > 1 && split[1].length() > 1 && split[1].contains("/")){
  175 + String[] spy = split[1].split("/");
  176 + m.put("ConductorEmpName" + i, spy[1]);
  177 + m.put("ConductorEmpNumber" + i, spy[0]);
  178 + } else {
  179 + m.put("ConductorEmpName" + i, "");
  180 + m.put("ConductorEmpNumber" + i, "");
  181 + }
  182 + } else {
  183 + m.put("DriverEmpName" + i, "");
  184 + m.put("DriverEmpNumber" + i, "");
  185 + m.put("ConductorEmpName" + i, "");
  186 + m.put("ConductorEmpNumber" + i, "");
  187 + }
  188 + }
  189 + resList.add(m);
  190 + }
  191 + }
  192 +
  193 + if(resList.size() > 0){
  194 + List<List<Map<String, Object>>> listGroup = new ArrayList<List<Map<String, Object>>>();
  195 + int size = resList.size();
  196 + int index = 1000;
  197 + for(int i = 0; i < size; i += index){
  198 + if(i + index > size){
  199 + index = size - i;
  200 + }
  201 + List<Map<String, Object>> newList = resList.subList(i, i + index);
  202 + listGroup.add(newList);
  203 + }
  204 +
  205 + String json= getHttpInterface("http://180.167.126.126:8992/api/getcode");
  206 + Map<String, Object> map=(Map<String, Object>) JSONObject.parse(json);
  207 + String token = encrypt(accessToken, map.get("result").toString());
  208 + String deleteAll = "TRUE";
  209 +
  210 + for(List<Map<String, Object>> list : listGroup){
  211 + Map<String, String> header = new HashMap<String, String>();
  212 + header.put("Access-Token", token);
  213 + Map<String, Object> param = new HashMap<String, Object>();
  214 +// param.put("AccessToken", token);
  215 +// param.put("DeleteAll", deleteAll);
  216 +// param.put("DataList", JSON.toJSONString(list));
  217 + param.put("list", URLEncoder.encode(JSON.toJSONStringWithDateFormat(list, "yyyy-MM-dd HH:mm:ss"), "UTF-8"));
  218 +// HttpUtils.request("http://180.167.126.126:8992/api/todaybuslinescheduleinfo/addEntityList",
  219 +// new BackClass(), "POST", header, param);
  220 + deleteAll = "FALSE";
  221 + }
  222 + System.out.println(resList.size());
  223 + logger.info("实际排班共上传:" + resList.size() + "条");
  224 + }
  225 + }
  226 +
  227 + /**
  228 + * 空驶里程(BusDispatch_UnCarryMileage)
  229 + * 云平台数据需求对接(建交委)
  230 + * @throws Exception
  231 + */
  232 + @Scheduled(cron = "0 10 06 * * ? ")
  233 + public void ksLcUpload() throws Exception{
  234 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  235 + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
  236 + long ts=new Date().getTime();
  237 + StringBuffer hexstr = new StringBuffer();
  238 + MessageDigest md = MessageDigest.getInstance("SHA-1");
  239 + String str = ts+"7da994576ccbe6ea1f8e83936d4da84820756b3a"+"a1503";
  240 + md.update(str.getBytes());
  241 + byte[] digest = md.digest();
  242 + String shaHex = "";
  243 + for (int i = 0; i < digest.length; i++) {
  244 + shaHex = Integer.toHexString(digest[i] & 0xFF);
  245 + if (shaHex.length() < 2) {
  246 + hexstr.append(0);
  247 + }
  248 + hexstr.append(shaHex);
  249 + }
  250 + String sign =hexstr.toString();
  251 +
  252 + String[] strs = {"55", "22", "05", "26"};
  253 + String rq = sdf2.format(sdf2.parse("20200822"));
  254 + String accessToken = "abfed98867c64fde99f7f88a4532efa8";
  255 +
  256 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  257 +
  258 + for(int s = 0; s < strs.length; s++){
  259 + String company = strs[s];
  260 + System.out.println(company);
  261 +
  262 + String lineJson= getHttpInterface("http://"+ip+"/webservice/rest/line/company/"+company+"?timestamp="+ts+"&nonce=a1503&password=7da994576ccbe6ea1f8e83936d4da84820756b3a&sign="+sign);
  263 + List<Map<String, Object>> list_line=(List<Map<String, Object>>) JSONObject.parse(lineJson);
  264 +
  265 + String json= getHttpInterface("http://"+ip+"/webservice/rest/schedule_real/sch_jk/"+company+"/"+rq+"?timestamp="+ts+"&nonce=a1503&password=7da994576ccbe6ea1f8e83936d4da84820756b3a&sign="+sign);
  266 + List<Map<String, Object>> list_map=(List<Map<String, Object>>) JSONObject.parse(json);
  267 +
  268 + Map<String, Map<String, Object>> lineMap = new HashMap<String, Map<String, Object>>();
  269 + for(Map<String, Object> m : list_line){
  270 + lineMap.put(m.get("lineCode").toString(), m);
  271 + }
  272 +
  273 + Map<String, List<Map<String, Object>>> keyMap = new HashMap<String, List<Map<String,Object>>>();
  274 + List<String> keyList = new ArrayList<String>();
  275 +
  276 + for(Map<String, Object> m : list_map){
  277 +
  278 + String date = m.get("scheduleDate").toString();
  279 + String lineCode = m.get("lineCode").toString();
  280 + String bcType = m.get("bcType")!=null?m.get("bcType").toString():"";
  281 +
  282 + String key = date + "/" + lineCode + "/" + bcType;
  283 +
  284 + if(keyMap.containsKey(key)){
  285 + keyMap.get(key).add(m);
  286 + } else {
  287 + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  288 + list.add(m);
  289 + keyMap.put(key, list);
  290 + keyList.add(key);
  291 + }
  292 + }
  293 +
  294 + for(String key : keyList){
  295 + List<Map<String, Object>> list = keyMap.get(key);
  296 +
  297 + Map<String, Object> m = new HashMap<String, Object>();
  298 +
  299 + m.put("ReportDate", sdf.parse(list.get(0).get("scheduleDate").toString()));
  300 + m.put("BusLineCode", list.get(0).get("lineCode"));
  301 + m.put("BusLineName", list.get(0).get("lineName"));
  302 +
  303 + if(lineMap.get(list.get(0).get("lineCode").toString()) != null){
  304 + Map<String, Object> map = lineMap.get(list.get(0).get("lineCode"));
  305 + String gs = map.get("company")!=null?map.get("company").toString():"";
  306 + String fgs = map.get("brancheCompany")!=null?map.get("brancheCompany").toString():"";
  307 + m.put("CompanyCode", gs);
  308 + m.put("SubCompanyCode", fgs);
  309 + m.put("CompanyName", "");
  310 + m.put("SubCompanyName", "");
  311 +
  312 + String gsFgsName = getGsFgsName(gs, fgs);
  313 + if(gsFgsName.length() > 1){
  314 + String[] split = gsFgsName.split("_");
  315 + if(split.length > 1){
  316 + m.put("CompanyName", split[0]);
  317 + m.put("SubCompanyName", split[1]);
  318 + }
  319 + }
  320 +
  321 + } else {
  322 + continue;
  323 + }
  324 +
  325 + double kslc = 0;
  326 +
  327 + for(Map<String, Object> temp : list){
  328 + List<Map<String, Object>> cTasks = (List<Map<String, Object>>)temp.get("cTasks");
  329 + if(cTasks.size() > 0){
  330 + for(Map<String, Object> task : cTasks){
  331 + if("false".equals(task.get("destroy")!=null?task.get("destroy").toString():"")){
  332 + if("empty".equals(task.get("mileageType")!=null?task.get("mileageType").toString():"")){
  333 + kslc = Arith.add(kslc, task.get("mileage")==null?0:task.get("mileage"));
  334 + }
  335 + }
  336 + }
  337 + } else {
  338 + String bcType = temp.get("bcType")!=null?temp.get("bcType").toString():"";
  339 + if(bcType.equals("in") || bcType.equals("out") || bcType.equals("ldks")){
  340 + if(temp.get("status") != null && !("-1".equals(temp.get("status").toString()))){
  341 + kslc = Arith.add(kslc, temp.get("jhlc")==null?0:temp.get("jhlc"));
  342 + }
  343 + }
  344 + }
  345 + }
  346 + if(kslc > 0d){
  347 + m.put("Mileage", kslc);
  348 +
  349 + if("in".equals(list.get(0).get("bcType").toString())){
  350 + m.put("MileageType", "进场");
  351 + } else if("out".equals(list.get(0).get("bcType").toString())){
  352 + m.put("MileageType", "出场");
  353 + } else {
  354 + m.put("MileageType", "其他");
  355 + }
  356 +
  357 + resList.add(m);//2020-08-20:785条
  358 + }
  359 + }
  360 + }
  361 +
  362 + if(resList.size() > 0){
  363 + List<List<Map<String, Object>>> listGroup = new ArrayList<List<Map<String, Object>>>();
  364 + int size = resList.size();
  365 + int index = 1000;
  366 + for(int i = 0; i < size; i += index){
  367 + if(i + index > size){
  368 + index = size - i;
  369 + }
  370 + List<Map<String, Object>> newList = resList.subList(i, i + index);
  371 + listGroup.add(newList);
  372 + }
  373 +
  374 + String json= getHttpInterface("http://180.167.126.126:8992/api/getcode");
  375 + Map<String, Object> map=(Map<String, Object>) JSONObject.parse(json);
  376 + String token = encrypt(accessToken, map.get("result").toString());
  377 + String deleteAll = "TRUE";
  378 +
  379 + for(List<Map<String, Object>> list : listGroup){
  380 + Map<String, String> header = new HashMap<String, String>();
  381 + header.put("Access-Token", token);
  382 + Map<String, Object> param = new HashMap<String, Object>();
  383 +// param.put("AccessToken", token);
  384 +// param.put("DeleteAll", deleteAll);
  385 +// param.put("DataList", JSON.toJSONString(list));
  386 + param.put("list", URLEncoder.encode(JSON.toJSONStringWithDateFormat(list, "yyyy-MM-dd HH:mm:ss"), "UTF-8"));
  387 + HttpUtils.request("http://180.167.126.126:8992/api/busdispatchuncarrymileage/addEntityList",
  388 + new BackClass(), "POST", header, param);
  389 + deleteAll = "FALSE";
  390 + }
  391 + System.out.println(resList.size());
  392 + logger.info("空驶里程共上传:" + resList.size() + "条");
  393 + }
  394 + }
  395 +
  396 + /**
  397 + * 烂班里程(BusDispatch_UnDoneMileage)
  398 + * 云平台数据需求对接(建交委)
  399 + * @throws Exception
  400 + */
  401 + @Scheduled(cron = "0 20 06 * * ? ")
  402 + public void lbLcUpload() throws Exception{
  403 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  404 + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
  405 + long ts=new Date().getTime();
  406 + StringBuffer hexstr = new StringBuffer();
  407 + MessageDigest md = MessageDigest.getInstance("SHA-1");
  408 + String str = ts+"7da994576ccbe6ea1f8e83936d4da84820756b3a"+"a1503";
  409 + md.update(str.getBytes());
  410 + byte[] digest = md.digest();
  411 + String shaHex = "";
  412 + for (int i = 0; i < digest.length; i++) {
  413 + shaHex = Integer.toHexString(digest[i] & 0xFF);
  414 + if (shaHex.length() < 2) {
  415 + hexstr.append(0);
  416 + }
  417 + hexstr.append(shaHex);
  418 + }
  419 + String sign =hexstr.toString();
  420 +
  421 + String[] strs = {"55", "22", "05", "26"};
  422 + String rq = sdf2.format(sdf2.parse("20200822"));
  423 + String accessToken = "abfed98867c64fde99f7f88a4532efa8";
  424 +
  425 + String[] lbTypes = {"路阻", "吊慢", "故障", "纠纷", "肇事", "缺人", "缺车", "客稀", "配车", "保养", "气候", "援外", "抽减", "其他"};
  426 +
  427 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  428 +
  429 + for(int s = 0; s < strs.length; s++){
  430 + String company = strs[s];
  431 + System.out.println(company);
  432 +
  433 + String lineJson= getHttpInterface("http://"+ip+"/webservice/rest/line/company/"+company+"?timestamp="+ts+"&nonce=a1503&password=7da994576ccbe6ea1f8e83936d4da84820756b3a&sign="+sign);
  434 + List<Map<String, Object>> list_line=(List<Map<String, Object>>) JSONObject.parse(lineJson);
  435 +
  436 + String json= getHttpInterface("http://"+ip+"/webservice/rest/schedule_real/sch_jk/"+company+"/"+rq+"?timestamp="+ts+"&nonce=a1503&password=7da994576ccbe6ea1f8e83936d4da84820756b3a&sign="+sign);
  437 + List<Map<String, Object>> list_map=(List<Map<String, Object>>) JSONObject.parse(json);
  438 +
  439 + Map<String, Map<String, Object>> lineMap = new HashMap<String, Map<String, Object>>();
  440 + for(Map<String, Object> m : list_line){
  441 + lineMap.put(m.get("lineCode").toString(), m);
  442 + }
  443 +
  444 + Map<String, List<Map<String, Object>>> keyMap = new HashMap<String, List<Map<String,Object>>>();
  445 + List<String> keyList = new ArrayList<String>();
  446 +
  447 + for(Map<String, Object> m : list_map){
  448 +
  449 + String date = m.get("scheduleDate").toString();
  450 + String lineCode = m.get("lineCode").toString();
  451 +
  452 + String key = date + "/" + lineCode;
  453 +
  454 + if(keyMap.containsKey(key)){
  455 + keyMap.get(key).add(m);
  456 + } else {
  457 + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  458 + list.add(m);
  459 + keyMap.put(key, list);
  460 + keyList.add(key);
  461 + }
  462 + }
  463 +
  464 + for(String key : keyList){
  465 + List<Map<String, Object>> list = keyMap.get(key);
  466 +
  467 + for(String lbType : lbTypes){
  468 +
  469 + Map<String, Object> m = new HashMap<String, Object>();
  470 +
  471 + m.put("ReportDate", sdf.parse(list.get(0).get("scheduleDate").toString()));
  472 + m.put("BusLineCode", list.get(0).get("lineCode"));
  473 + m.put("BusLineName", list.get(0).get("lineName"));
  474 + m.put("MileageType", lbType);
  475 +
  476 + if(lineMap.get(list.get(0).get("lineCode").toString()) != null){
  477 + Map<String, Object> map = lineMap.get(list.get(0).get("lineCode"));
  478 + String gs = map.get("company")!=null?map.get("company").toString():"";
  479 + String fgs = map.get("brancheCompany")!=null?map.get("brancheCompany").toString():"";
  480 + m.put("CompanyCode", gs);
  481 + m.put("SubCompanyCode", fgs);
  482 + m.put("CompanyName", "");
  483 + m.put("SubCompanyName", "");
  484 +
  485 + String gsFgsName = getGsFgsName(gs, fgs);
  486 + if(gsFgsName.length() > 1){
  487 + String[] split = gsFgsName.split("_");
  488 + if(split.length > 1){
  489 + m.put("CompanyName", split[0]);
  490 + m.put("SubCompanyName", split[1]);
  491 + }
  492 + }
  493 +
  494 + } else {
  495 + continue;
  496 + }
  497 +
  498 + double lblc = 0;
  499 +
  500 + for(Map<String, Object> temp : list){
  501 + if("true".equals(temp.get("sflj")!=null?temp.get("sflj").toString():"")){
  502 + continue;
  503 + }
  504 + List<Map<String, Object>> cTasks = (List<Map<String, Object>>)temp.get("cTasks");
  505 + if(cTasks.size() > 0){
  506 + for(Map<String, Object> task : cTasks){
  507 + if("true".equals(task.get("destroy")!=null?task.get("destroy").toString():"")){
  508 + String destroyReason = task.get("destroyReason")!=null?task.get("destroyReason").toString().trim():"";
  509 + if("其他".equals(lbType) && destroyReason.length() == 0){
  510 + lblc = Arith.add(lblc, task.get("mileage")==null?0:task.get("mileage"));
  511 + }
  512 + if(lbType.equals(destroyReason)){
  513 + lblc = Arith.add(lblc, task.get("mileage")==null?0:task.get("mileage"));
  514 + }
  515 + }
  516 + }
  517 + } else {
  518 + String bcType = temp.get("bcType")!=null?temp.get("bcType").toString():"";
  519 + if(bcType.equals("in") || bcType.equals("out") || bcType.equals("ldks")){
  520 + continue;
  521 + }
  522 + if(temp.get("status") != null && "-1".equals(temp.get("status").toString())){
  523 + String adjustExps = temp.get("adjustExps")!=null?temp.get("adjustExps").toString().trim():"";
  524 + if("其他".equals(lbType) && adjustExps.length() == 0){
  525 + lblc = Arith.add(lblc, temp.get("mileage")==null?0:temp.get("mileage"));
  526 + }
  527 + if(lbType.equals(adjustExps)){
  528 + lblc = Arith.add(lblc, temp.get("mileage")==null?0:temp.get("mileage"));
  529 + }
  530 + } else if("其他".equals(lbType)){
  531 + String jhlc = temp.get("jhlc")!=null?temp.get("jhlc").toString():"0";
  532 + String jhlcOrig = temp.get("jhlcOrig")!=null?temp.get("jhlcOrig").toString():"0";
  533 + double sub = Arith.sub(jhlcOrig,jhlc);
  534 + if(sub > 0){
  535 + lblc = Arith.add(lblc, sub);
  536 + }
  537 + }
  538 + }
  539 + }
  540 + if(lblc > 0d){
  541 + m.put("Mileage", lblc);
  542 + m.put("MileageType", lbType);
  543 +
  544 + resList.add(m);//2020-08-20:63条
  545 + }
  546 + }
  547 + }
  548 + }
  549 +
  550 + if(resList.size() > 0){
  551 + List<List<Map<String, Object>>> listGroup = new ArrayList<List<Map<String, Object>>>();
  552 + int size = resList.size();
  553 + int index = 1000;
  554 + for(int i = 0; i < size; i += index){
  555 + if(i + index > size){
  556 + index = size - i;
  557 + }
  558 + List<Map<String, Object>> newList = resList.subList(i, i + index);
  559 + listGroup.add(newList);
  560 + }
  561 +
  562 + String json= getHttpInterface("http://180.167.126.126:8992/api/getcode");
  563 + Map<String, Object> map=(Map<String, Object>) JSONObject.parse(json);
  564 + String token = encrypt(accessToken, map.get("result").toString());
  565 + String deleteAll = "TRUE";
  566 +
  567 + for(List<Map<String, Object>> list : listGroup){
  568 + Map<String, String> header = new HashMap<String, String>();
  569 + header.put("Access-Token", token);
  570 + Map<String, Object> param = new HashMap<String, Object>();
  571 +// param.put("AccessToken", token);
  572 +// param.put("DeleteAll", deleteAll);
  573 +// param.put("DataList", JSON.toJSONString(list));
  574 + param.put("list", URLEncoder.encode(JSON.toJSONStringWithDateFormat(list, "yyyy-MM-dd HH:mm:ss"), "UTF-8"));
  575 + HttpUtils.request("http://180.167.126.126:8992/api/busdispatchundonemileage/addEntityList",
  576 + new BackClass(), "POST", header, param);
  577 + deleteAll = "FALSE";
  578 + }
  579 + System.out.println(resList.size());
  580 + logger.info("烂班里程共上传:" + resList.size() + "条");
  581 + }
  582 + }
  583 +
  584 +
  585 + public static String getHttpInterface(String path){
  586 + BufferedReader in = null;
  587 + StringBuffer result = null;
  588 + try {
  589 + URL url = new URL(path);
  590 + //打开和url之间的连接
  591 + HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  592 + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  593 + connection.setRequestProperty("Charset", "utf-8");
  594 + connection.connect();
  595 +
  596 + result = new StringBuffer();
  597 + //读取URL的响应
  598 + in = new BufferedReader(new InputStreamReader(
  599 + connection.getInputStream(),"utf-8"));
  600 + String line;
  601 + while ((line = in.readLine()) != null) {
  602 + result.append(line);
  603 + }
  604 + return result.toString();
  605 + } catch (Exception e) {
  606 + e.printStackTrace();
  607 + }finally {
  608 + try {
  609 + if (in != null) {
  610 + in.close();
  611 + }
  612 + } catch (Exception e2) {
  613 + e2.printStackTrace();
  614 + }
  615 + }
  616 + return null;
  617 + }
  618 +
  619 + public static String encrypt(String token, String code) throws Exception {
  620 + if (token.length() != 32) throw new Exception("token 长度不正确");
  621 + code = padRight(code, 16, '0');
  622 + String tmpToken = "";
  623 + for (int i = 0; i < 8; i++){
  624 + String subString = code.substring(i * 2, (i + 1) * 2);
  625 + tmpToken += subString + token.substring(i * 4, (i + 1) * 4);
  626 + }
  627 + int pos = tmpToken.length() / 2;
  628 + tmpToken = tmpToken.substring(pos) + tmpToken.substring(0, pos);
  629 +
  630 + pos = tmpToken.length() / 4;
  631 + tmpToken = tmpToken.substring(pos * 3) + tmpToken.substring(pos, pos * 3) + tmpToken.substring(0, pos);
  632 + return URLEncoder.encode(tmpToken, "GBK");
  633 + }
  634 +
  635 + public static String padRight(String s, int len, char ch){
  636 + int diff = len - s.length();
  637 + if(diff <= 0){
  638 + return s;
  639 + }
  640 +
  641 + char[] charr = new char[len];
  642 + System.arraycopy(s.toCharArray(), 0, charr, 0, s.length());
  643 + for(int i = s.length(); i < len; i++){
  644 + charr[i] = ch;
  645 + }
  646 +
  647 + return new String(charr);
  648 + }
  649 +
  650 + public static String getGsFgsName(String gs, String fgs){
  651 + String gsFgs = "";
  652 + if("22".equals(gs)){
  653 + gsFgs += "金高公司_";
  654 +
  655 + if("1".equals(fgs)){
  656 + gsFgs += "四分公司";
  657 + return gsFgs;
  658 + } else if("2".equals(fgs)){
  659 + gsFgs += "二分公司";
  660 + return gsFgs;
  661 + } else if("3".equals(fgs)){
  662 + gsFgs += "三分公司";
  663 + return gsFgs;
  664 + } else if("5".equals(fgs)){
  665 + gsFgs += "一分公司";
  666 + return gsFgs;
  667 + }
  668 + } else if("26".equals(gs)){
  669 + gsFgs += "南汇公司_";
  670 +
  671 + if("1".equals(fgs)){
  672 + gsFgs += "南汇一分";
  673 + return gsFgs;
  674 + } else if("2".equals(fgs)){
  675 + gsFgs += "南汇二分";
  676 + return gsFgs;
  677 + } else if("3".equals(fgs)){
  678 + gsFgs += "南汇三分";
  679 + return gsFgs;
  680 + } else if("4".equals(fgs)){
  681 + gsFgs += "南汇维修公司";
  682 + return gsFgs;
  683 + } else if("5".equals(fgs)){
  684 + gsFgs += "南汇公司";
  685 + return gsFgs;
  686 + } else if("6".equals(fgs)){
  687 + gsFgs += "南汇六分";
  688 + return gsFgs;
  689 + }
  690 + } else if("55".equals(gs)){
  691 + gsFgs += "上南公司_";
  692 +
  693 + if("1".equals(fgs)){
  694 + gsFgs += "上南二分公司";
  695 + return gsFgs;
  696 + } else if("2".equals(fgs)){
  697 + gsFgs += "上南三分公司";
  698 + return gsFgs;
  699 + } else if("3".equals(fgs)){
  700 + gsFgs += "上南六分公司";
  701 + return gsFgs;
  702 + } else if("4".equals(fgs)){
  703 + gsFgs += "上南一分公司";
  704 + return gsFgs;
  705 + }
  706 + } else if("05".equals(gs)){
  707 + gsFgs += "杨高公司_";
  708 +
  709 + if("1".equals(fgs)){
  710 + gsFgs += "川沙分公司";
  711 + return gsFgs;
  712 + } else if("2".equals(fgs)){
  713 + gsFgs += "金桥分公司";
  714 + return gsFgs;
  715 + } else if("3".equals(fgs)){
  716 + gsFgs += "芦潮港分公司";
  717 + return gsFgs;
  718 + } else if("5".equals(fgs)){
  719 + gsFgs += "杨高分公司";
  720 + return gsFgs;
  721 + } else if("6".equals(fgs)){
  722 + gsFgs += "周浦分公司";
  723 + return gsFgs;
  724 + }
  725 + }
  726 + return "";
  727 + }
  728 +
  729 +}
src/main/java/com/bsth/serviec_jk/xl_basic/XlBasicService.java
1 -package com.bsth.serviec_jk.xl_basic;  
2 -  
3 -import com.alibaba.fastjson.JSONObject;  
4 -import com.bsth.serviec_jk.JkToken;  
5 -import com.bsth.serviec_jk.WebserviceSign;  
6 -import com.bsth.utils.HttpUtils;  
7 -import com.fasterxml.jackson.databind.ObjectMapper;  
8 -import org.apache.tomcat.util.http.fileupload.IOUtils;  
9 -import org.slf4j.Logger;  
10 -import org.slf4j.LoggerFactory;  
11 -import org.springframework.scheduling.annotation.EnableScheduling;  
12 -import org.springframework.scheduling.annotation.Scheduled;  
13 -import org.springframework.stereotype.Controller;  
14 -import org.springframework.transaction.annotation.Transactional;  
15 -import org.springframework.web.bind.annotation.RequestMapping;  
16 -import java.io.ByteArrayOutputStream;  
17 -import java.io.IOException;  
18 -import java.io.InputStream;  
19 -import java.net.HttpURLConnection;  
20 -import java.net.MalformedURLException;  
21 -import java.net.URL;  
22 -import java.util.*;  
23 -@Controller  
24 -@RequestMapping("api")  
25 -@EnableScheduling  
26 -public class XlBasicService {  
27 -  
28 - private final static Logger log = LoggerFactory.getLogger(HttpUtils.class);  
29 -  
30 - //线路基本信息接口  
31 - @Transactional()  
32 - @Scheduled(cron = "0 0 1 * * ?") //每天凌晨一点 执行  
33 - public void xlbasic() {  
34 - log.info("调用线路基本信息接口开始---------------");  
35 - long startTime=System.currentTimeMillis();  
36 - Map<String,Object> xlmap = new LinkedHashMap<>();  
37 - String url = "http://180.167.126.126:8992/api/buslineinfo/insertlist";  
38 - try{  
39 - String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";  
40 - String timestamp = String.valueOf(System.currentTimeMillis());  
41 - String nonce = WebserviceSign.getRandomString(5);  
42 - Map<String, String> map = new HashMap<String, String>();  
43 - map.put("timestamp", timestamp);//时间戳  
44 - map.put("nonce", nonce);//随机字符串  
45 - map.put("password", password);//密码  
46 - String signStr = WebserviceSign.getSHA1(map);  
47 - String endpoint = "http://114.80.178.12:9089/webservice/rest/line/all?timestamp="+timestamp+"&nonce="+nonce+"&password="+password+"&sign="+signStr;  
48 - InputStream in = null;  
49 - try {  
50 - HttpURLConnection con = (HttpURLConnection)new URL(endpoint).openConnection();  
51 - con.setDoInput(true);  
52 - con.setDoOutput(true);  
53 - con.setRequestMethod("GET");  
54 - con.setConnectTimeout(5000);  
55 - con.setReadTimeout(5000);  
56 - con.setRequestProperty("keep-alive", "true");  
57 - con.setRequestProperty("accept", "application/json");  
58 - con.setRequestProperty("content-type", "application/json");  
59 - if (con.getResponseCode() == 200) {  
60 - in = con.getInputStream();  
61 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
62 - IOUtils.copy(in, bout);  
63 - List m = new ObjectMapper().readValue(bout.toByteArray(), List.class);  
64 - String token = JkToken.jkdata();  
65 - xlmap.put("AccessToken", token);  
66 - xlmap.put("DeleteAll", "true");  
67 - Map stmap = new LinkedHashMap();  
68 - List numlist = new ArrayList();  
69 - for (Object o:m){  
70 - Map ke = (Map)o;  
71 - //替换key  
72 - stmap.put("BusLineCode", ke.get("lineCode"));  
73 - stmap.put("BusLineName", ke.get("name"));  
74 - stmap.put("BusLineEngName", null);  
75 - stmap.put("BusLineShortName", null);  
76 - stmap.put("CompanyCode", null);  
77 - stmap.put("CompanyName", ke.get("company"));  
78 - stmap.put("SubCompanyCode", null);  
79 - stmap.put("SubCompanyName", ke.get("brancheCompany"));  
80 - stmap.put("StartDate", null);  
81 - stmap.put("linePlayType", null);  
82 - stmap.put("BusLinePropertyCode", ke.get("nature"));  
83 - stmap.put("BusLineGradeCode", ke.get("level"));  
84 - stmap.put("CompanyContacts", null);  
85 - stmap.put("ContactsPhone", null);  
86 - stmap.put("BusLineLeader", null);  
87 - stmap.put("LeaderPhone", null);  
88 - stmap.put("ParentBusLineCode", null);  
89 - stmap.put("UpFirstTime", null);  
90 - stmap.put("UpLastTime", null);  
91 - stmap.put("StartingStation", ke.get("startStationName"));  
92 - stmap.put("DnFirstTime", null);  
93 - stmap.put("DnLastTime", null);  
94 - stmap.put("EndStation", ke.get("endStationName"));  
95 - stmap.put("CrossRegion", null);  
96 - stmap.put("Remark", null);  
97 - stmap.put("TiceSeller", null);  
98 - stmap.put("RunTime", null);  
99 - stmap.put("ParkCode", null);  
100 - stmap.put("ParkName", null);  
101 - stmap.put("VehicleConfigurationNum", null);  
102 - stmap.put("RoadVector", null);  
103 - stmap.put("EquipmentLineCode", ke.get("eqLinecode"));  
104 - stmap.put("RouteEvolution", null);  
105 - stmap.put("AirConditionedVehiclesNum", null);  
106 - stmap.put("LineLength", null);  
107 - stmap.put("OrdinaryVehiclesNum", null);  
108 - stmap.put("RoutePlanningType", null);  
109 - stmap.put("ShangHaiLineCode", null);  
110 - stmap.put("IsNightTrain", ke.get("supperLine"));  
111 - stmap.put("WarrantBusNum", null);  
112 - stmap.put("WarrantBusDate", null);  
113 - stmap.put("IsInUse", ke.get("destroy"));  
114 - stmap.put("IsOperate", null);  
115 - stmap.put("LargeIntervalLevel", null);  
116 - numlist.add(stmap);  
117 - stmap = new LinkedHashMap();  
118 - }  
119 - xlmap.put("DataList", numlist);  
120 - int count = 1;  
121 - if (numlist.size() == 0) {  
122 - return;  
123 - }  
124 - if (null != numlist && numlist.size() > 1000) {  
125 -  
126 - for (int i = 0; i < numlist.size(); ) {  
127 - if (count > 1) {  
128 - xlmap.put("DeleteAll", "false");  
129 - }  
130 - if (numlist.size() > i + 1000) {  
131 - log.info("第" + count + "次调用-----------");  
132 - xlmap.put("DataList", numlist.subList(i, i + 1000));  
133 - JSONObject json = new JSONObject(xlmap);  
134 - int resultCount = HttpService.httpRequestResult(json, token, url, count);  
135 - } else {  
136 - log.info("第" + count + "次调用-----------");  
137 - xlmap.put("DataList", numlist.subList(i, numlist.size()));  
138 - JSONObject json = new JSONObject(xlmap);  
139 - int resultCount = HttpService.httpRequestResult(json, token, url, count);  
140 - }  
141 - i = i + 1000;  
142 - count++;  
143 -  
144 - }  
145 - } else {  
146 - xlmap.put("DataList", numlist.subList(0, numlist.size()));  
147 - JSONObject json = new JSONObject(xlmap);  
148 - int resultCount = HttpService.httpRequestResult(json, token, url, count);  
149 - }  
150 - long endTime=System.currentTimeMillis();  
151 - log.info("调用线路基本信息插入接口结束---------------共计执行时间:"+(endTime-startTime));  
152 - }  
153 - } catch (MalformedURLException e) {  
154 - // TODO Auto-generated catch block  
155 - e.printStackTrace();  
156 - } catch (IOException e) {  
157 - // TODO Auto-generated catch block  
158 - e.printStackTrace();  
159 - }  
160 - }catch(Exception e){  
161 - e.printStackTrace();  
162 - }  
163 - }  
164 -  
165 - //线路参数信息接口  
166 - @Transactional()  
167 - @Scheduled(cron = "0 0 1 * * ?")//每天凌晨一点 执行  
168 - public void xlparameter(){  
169 - log.info("调用线路参数信息接口开始---------------");  
170 - long startTime=System.currentTimeMillis();  
171 - String url = "http://180.167.126.126:8992/api/buslineparmterinfo/insertlist";  
172 - Map<String,Object> xlmap = new HashMap<>();  
173 - try{  
174 - String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";  
175 - String timestamp = String.valueOf(System.currentTimeMillis());  
176 - String nonce = WebserviceSign.getRandomString(5);  
177 - Map<String, String> map = new HashMap<String, String>();  
178 - map.put("timestamp", timestamp);//时间戳  
179 - map.put("nonce", nonce);//随机字符串  
180 - map.put("password", password);//密码  
181 - String signStr = WebserviceSign.getSHA1(map);  
182 - String endpoint = "http://114.80.178.12:9089/webservice/rest/line/all?timestamp="+timestamp+"&nonce="+nonce+"&password="+password+"&sign="+signStr;  
183 - InputStream in = null;  
184 - try {  
185 - HttpURLConnection con = (HttpURLConnection)new URL(endpoint).openConnection();  
186 - con.setDoInput(true);  
187 - con.setDoOutput(true);  
188 - con.setRequestMethod("GET");  
189 - con.setConnectTimeout(5000);  
190 - con.setReadTimeout(5000);  
191 - con.setRequestProperty("keep-alive", "true");  
192 - con.setRequestProperty("accept", "application/json");  
193 - con.setRequestProperty("content-type", "application/json");  
194 -  
195 - if (con.getResponseCode() == 200) {  
196 - in = con.getInputStream();  
197 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
198 - IOUtils.copy(in, bout);  
199 - Map stmap = new LinkedHashMap();  
200 - List m = new ObjectMapper().readValue(bout.toByteArray(), List.class);  
201 - List numlist = new ArrayList();  
202 - for (Object o:m){  
203 - Map ke = (Map)o;  
204 - stmap.put("BusLineCode",ke.get("lineCode"));  
205 - stmap.put("UpKilometer",null);  
206 - stmap.put("DnKilometer",null);  
207 - stmap.put("MPBegTime",null);  
208 - stmap.put("MPEndTime",null);  
209 - stmap.put("EPBegTime",null);  
210 - stmap.put("EPEndTime",null);  
211 - stmap.put("SNPBegTime",null);  
212 - stmap.put("SNPEndTime",null);  
213 - stmap.put("MPUpTravelTime",null);  
214 - stmap.put("MPDnTravelTime",null);  
215 - stmap.put("EPUpTravelTime",null);  
216 - stmap.put("EPDnTravelTime",null);  
217 - stmap.put("SNPUpTravelTime",null);  
218 - stmap.put("SNPDnTravelTime",null);  
219 - stmap.put("LowUpTravelTime",null);  
220 - stmap.put("LowDnTravelTime",null);  
221 - stmap.put("StartingToParkTime",null);  
222 - stmap.put("StartingToParkKilometer",null);  
223 - stmap.put("LastingToParkTime",null);  
224 - stmap.put("LastingToParkKilometer",null);  
225 - stmap.put("MPLargeMargin",ke.get("earlyIntervalLg"));  
226 - stmap.put("EPLargeMargin",ke.get("lateIntervalLg"));  
227 - stmap.put("LowLargeMargin",ke.get("intervalLg"));  
228 - stmap.put("MaxOverSpeed",null);  
229 - stmap.put("OverStopTime",ke.get("lagStation"));  
230 - stmap.put("LessStopTime",ke.get("skip"));  
231 - stmap.put("BusMaxGather",null);  
232 - stmap.put("DeleteFlag",ke.get("destroy"));  
233 - stmap.put("Remark",null);  
234 - stmap.put("SpeedNormal",ke.get("speedLimit"));  
235 - stmap.put("SpeedRain",null);  
236 - stmap.put("SpeedDenseFog",null);  
237 - stmap.put("SpeedIce",null);  
238 - stmap.put("SpeedFestival",null);  
239 - stmap.put("Speeding",ke.get("speeding"));  
240 - stmap.put("String",ke.get("crossedLine"));  
241 - stmap.put("Transboundary",ke.get("overflights"));  
242 - stmap.put("describe",null);  
243 - stmap.put("ParkingLot",null);  
244 - stmap.put("FromMileage",null);  
245 - stmap.put("OutTime",null);  
246 - stmap.put("ProcessionMileage",null);  
247 - numlist.add(stmap);  
248 - stmap = new LinkedHashMap();  
249 - }  
250 - String token = JkToken.jkdata();  
251 - xlmap.put("AccessToken",token);  
252 - xlmap.put("DeleteAll","true");  
253 - xlmap.put("DataList",numlist);  
254 - int count = 1;  
255 - if (numlist.size() == 0) {  
256 - return;  
257 - }  
258 - if (null != numlist && numlist.size() > 1000) {  
259 -  
260 - for (int i = 0; i < numlist.size(); ) {  
261 - if (count > 1) {  
262 - xlmap.put("DeleteAll", "false");  
263 - }  
264 - if (numlist.size() > i + 1000) {  
265 - log.info("第" + count + "次调用-----------");  
266 - xlmap.put("DataList", numlist.subList(i, i + 1000));  
267 - JSONObject json = new JSONObject(xlmap);  
268 - int resultCount = HttpService.httpRequestResult(json, token, url, count);  
269 - } else {  
270 - log.info("第" + count + "次调用-----------");  
271 - xlmap.put("DataList", numlist.subList(i, numlist.size()));  
272 - JSONObject json = new JSONObject(xlmap);  
273 - int resultCount = HttpService.httpRequestResult(json, token, url, count);  
274 - }  
275 - i = i + 1000;  
276 - count++;  
277 - }  
278 - } else {  
279 - xlmap.put("DataList", numlist.subList(0, numlist.size()));  
280 - JSONObject json = new JSONObject(xlmap);  
281 - int resultCount = HttpService.httpRequestResult(json, token, url, count);  
282 - }  
283 - long endTime=System.currentTimeMillis();  
284 - log.info("调用线路参数信息插入接口结束---------------共计执行时间:"+(endTime-startTime));  
285 - }  
286 - } catch (MalformedURLException e) {  
287 - // TODO Auto-generated catch block  
288 - e.printStackTrace();  
289 - } catch (IOException e) {  
290 - // TODO Auto-generated catch block  
291 - e.printStackTrace();  
292 - }  
293 - }catch(Exception e){  
294 - e.printStackTrace();  
295 - }  
296 - }  
297 -  
298 - ////线路走向接口  
299 - @Transactional()  
300 - @Scheduled(cron = "0 0 1 * * ?")//每天凌晨一点 执行  
301 - public void postrend(){  
302 - log.info("调用线路走向接口开始---------------");  
303 - long startTime=System.currentTimeMillis();  
304 - Map<String,Object> xlmap = new HashMap<>();  
305 - List numlist = new ArrayList();  
306 - String url="http://180.167.126.126:8992/api/stationnetpoints/insertlist";  
307 - try{  
308 - String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";  
309 - String timestamp = String.valueOf(System.currentTimeMillis());  
310 - String nonce = WebserviceSign.getRandomString(5);  
311 - Map<String, String> map = new HashMap<String, String>();  
312 - map.put("timestamp", timestamp);//时间戳  
313 - map.put("nonce", nonce);//随机字符串  
314 - map.put("password", password);//密码  
315 - String signStr = WebserviceSign.getSHA1(map);  
316 - List list = new ArrayList();  
317 - list.add("22");//四家公司  
318 - list.add("26");  
319 - list.add("55");  
320 - list.add("05");  
321 - try {  
322 - for (Object t:list ) {  
323 - String endpoint = "http://114.80.178.12:9089/webservice/rest/ld_section/"+t+"?timestamp=" + timestamp + "&nonce=" + nonce + "&password=" + password + "&sign=" + signStr;  
324 - InputStream in = null;  
325 - HttpURLConnection con = (HttpURLConnection) new URL(endpoint).openConnection();  
326 - con.setDoInput(true);  
327 - con.setDoOutput(true);  
328 - con.setRequestMethod("GET");  
329 - con.setConnectTimeout(5000);  
330 - con.setReadTimeout(5000);  
331 - con.setRequestProperty("keep-alive", "true");  
332 - con.setRequestProperty("accept", "application/json");  
333 - con.setRequestProperty("content-type", "application/json");  
334 -  
335 - if (con.getResponseCode() == 200) {  
336 - in = con.getInputStream();  
337 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
338 - IOUtils.copy(in, bout);  
339 - Map stmap = new LinkedHashMap();  
340 - Map m = new ObjectMapper().readValue(bout.toByteArray(), Map.class);  
341 - Map<String, Object> numMap = new LinkedHashMap<>();  
342 - List n = new ArrayList();  
343 - for (Object key : m.keySet()) {  
344 - List lit = (List) m.get(key);  
345 - Map st = (Map) lit.get(0);  
346 - Map section = (Map) st.get("section");  
347 - numMap.put("BusLineCode", st.get("lineCode"));  
348 - numMap.put("BusLineName", null);  
349 - numMap.put("Directions", st.get("directions"));  
350 - numMap.put("DirIndex ", st.get("sectionrouteCode"));  
351 - String lay[] = zbd(section.get("gsectionVector").toString());  
352 - if(lay != null) { //坐标类型问题传不过去 传null  
353 - numMap.put("LongitudeX", String.format("%.8f", Double.parseDouble(lay[0])));  
354 - numMap.put("LatitudeY", String.format("%.8f", Double.parseDouble(lay[1])));  
355 - }else {  
356 - numMap.put("LongitudeX", null);  
357 - numMap.put("LatitudeY", null);  
358 - }  
359 - numlist.add(numMap);  
360 - numMap = new LinkedHashMap<>();  
361 - }  
362 - }  
363 - }  
364 - String token = JkToken.jkdata();  
365 - xlmap.put("AccessToken",token);  
366 - xlmap.put("DeleteAll","true");  
367 - xlmap.put("DataList",numlist);  
368 -  
369 - int count=1;  
370 - if(numlist.size()==0){  
371 - return;  
372 - }  
373 - if(null !=numlist && numlist.size()>1000){  
374 -  
375 - for (int i = 0; i <numlist.size() ; ) {  
376 - if(count > 1){  
377 - xlmap.put("DeleteAll","false");  
378 - }  
379 - if(numlist.size()> i + 1000){  
380 - log.info("第"+count+"次调用-----------");  
381 - xlmap.put("DataList",numlist.subList(i,i+1000));  
382 - JSONObject json = new JSONObject(xlmap);  
383 - int resultCount= HttpService.httpRequestResult(json,token,url,count);  
384 - }else {  
385 - log.info("第"+count+"次调用-----------");  
386 - xlmap.put("DataList",numlist.subList(i,numlist.size()));  
387 - JSONObject json = new JSONObject(xlmap);  
388 - int resultCount= HttpService.httpRequestResult(json,token,url,count);  
389 - }  
390 - i=i+1000;  
391 - count++;  
392 - }  
393 - }else {  
394 - xlmap.put("DataList",numlist.subList(0,numlist.size()));  
395 - JSONObject json = new JSONObject(xlmap);  
396 - int resultCount= HttpService.httpRequestResult(json,token,url,count);  
397 - }  
398 - long endTime=System.currentTimeMillis();  
399 - log.info("调用线路走向插入接口结束---------------共计执行时间:"+(endTime-startTime));  
400 - } catch (MalformedURLException e) {  
401 - // TODO Auto-generated catch block  
402 - e.printStackTrace();  
403 - } catch (IOException e) {  
404 - // TODO Auto-generated catch block  
405 - e.printStackTrace();  
406 - }  
407 - }catch(Exception e){  
408 - e.printStackTrace();  
409 - }  
410 - }  
411 -  
412 - //查询线路停靠站信息接口  
413 - @Transactional()  
414 - @Scheduled(cron = "0 0 1 * * ?")//每天凌晨一点 执行  
415 - public void site(){  
416 - log.info("调用线路停靠站信息接口开始---------------");  
417 - long startTime=System.currentTimeMillis();  
418 - Map<String,Object> xlmap = new HashMap<>();  
419 - List numlist = new ArrayList();  
420 - String url="http://180.167.126.126:8992/api/buslinenetstation/insertlist";  
421 - try{  
422 - String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";  
423 - String timestamp = String.valueOf(System.currentTimeMillis());  
424 - String nonce = WebserviceSign.getRandomString(5);  
425 - Map<String, String> map = new HashMap<String, String>();  
426 - map.put("timestamp", timestamp);//时间戳  
427 - map.put("nonce", nonce);//随机字符串  
428 - map.put("password", password);//密码  
429 - String signStr = WebserviceSign.getSHA1(map);  
430 - List list = new ArrayList();  
431 - list.add("22"); list.add("26"); list.add("55"); list.add("05"); //四家公司  
432 - try {  
433 - for (Object t:list ) {  
434 - String endpoint = "http://114.80.178.12:9089/webservice/rest/station/" + t + "?timestamp=" + timestamp + "&nonce=" + nonce + "&password=" + password + "&sign=" + signStr;  
435 - InputStream in = null;  
436 - HttpURLConnection con = (HttpURLConnection) new URL(endpoint).openConnection();  
437 - con.setDoInput(true);  
438 - con.setDoOutput(true);  
439 - con.setRequestMethod("GET");  
440 - con.setConnectTimeout(5000);  
441 - con.setReadTimeout(5000);  
442 - con.setRequestProperty("keep-alive", "true");  
443 - con.setRequestProperty("accept", "application/json");  
444 - con.setRequestProperty("content-type", "application/json");  
445 - if (con.getResponseCode() == 200) {  
446 - in = con.getInputStream();  
447 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
448 - IOUtils.copy(in, bout);  
449 - Map m = new ObjectMapper().readValue(bout.toByteArray(), Map.class);  
450 - Map<String, Object> numMap = new LinkedHashMap<>();  
451 - for (Object key : m.keySet()) {  
452 - List lit = (List) m.get(key);  
453 - for (Object o : lit) {  
454 - Map st = (Map) o;  
455 - Map station = (Map) st.get("station");  
456 - numMap.put("BusLineCode", st.get("lineCode"));  
457 - numMap.put("BusLineName", 0);  
458 - numMap.put("Directions", 0);  
459 - numMap.put("DirIndex", 0);  
460 - numMap.put("StationCode ", st.get("stationCode"));  
461 - numMap.put("StationName", st.get("stationName"));  
462 - if (st.get("stationMark").equals("B")) {  
463 - numMap.put("StationTypeCode", 1);  
464 - } else if (st.get("stationMark").equals("E")) {  
465 - numMap.put("StationTypeCode", 2);  
466 - } else {  
467 - numMap.put("StationTypeCode", 0);  
468 - }  
469 - numMap.put("StationEngName", 0);  
470 - numMap.put("StationAddress", st.get("stationName"));  
471 - if (station != null) {  
472 - numMap.put("LongitudeX", station.get("lon"));  
473 - numMap.put("LatitudeY", station.get("lat"));  
474 - } else {  
475 - numMap.put("LongitudeX", 0);  
476 - numMap.put("LatitudeY", 0);  
477 - }  
478 - numMap.put("FirstTime", st.get("firstTime"));  
479 - numMap.put("LastTime", st.get("endTime"));  
480 - numMap.put("OperateTimes", 0);  
481 - numlist.add(numMap);  
482 - numMap = new LinkedHashMap<>();  
483 - }  
484 - }  
485 - }  
486 - }  
487 - String token = JkToken.jkdata();  
488 - xlmap.put("AccessToken",token);  
489 - xlmap.put("DeleteAll","true");  
490 - xlmap.put("DataList",numlist);  
491 - int count = 1;  
492 - if(numlist.size() == 0){  
493 - return;  
494 - }  
495 - if(null !=numlist && numlist.size() > 1000){  
496 -  
497 - for (int i = 0; i < numlist.size() ; ) {  
498 - if(count > 1){  
499 - xlmap.put("DeleteAll","false");  
500 - }  
501 - if(numlist.size() > i + 1000){  
502 - log.info("第"+count+"次调用-----------");  
503 - xlmap.put("DataList",numlist.subList(i,i+1000));  
504 - JSONObject json = new JSONObject(xlmap);  
505 - int resultCount= HttpService.httpRequestResult(json,token,url,count);  
506 - }else {  
507 - log.info("第"+count+"次调用-----------");  
508 - xlmap.put("DataList",numlist.subList(i,numlist.size()));  
509 - JSONObject json = new JSONObject(xlmap);  
510 - int resultCount= HttpService.httpRequestResult(json,token,url,count);  
511 - }  
512 - i = i + 1000;  
513 - count++;  
514 -  
515 - }  
516 - }else {  
517 - xlmap.put("DataList",numlist.subList(0,numlist.size()));  
518 - JSONObject json = new JSONObject(xlmap);  
519 - int resultCount= HttpService.httpRequestResult(json,token,url,count);  
520 - }  
521 - long endTime=System.currentTimeMillis();  
522 - log.info("调用线路停靠站信息插入接口结束---------------共计执行时间:"+(endTime-startTime));  
523 -  
524 - } catch (MalformedURLException e) {  
525 - // TODO Auto-generated catch block  
526 - e.printStackTrace();  
527 - } catch (IOException e) {  
528 - // TODO Auto-generated catch block  
529 - e.printStackTrace();  
530 - }  
531 - }catch(Exception e){  
532 - e.printStackTrace();  
533 - }  
534 - }  
535 -  
536 - //线路走向坐标类型转换格式  
537 - public static String[] zbd(String gsectionVector){  
538 - String longStr = new String(gsectionVector.replaceAll("[^\\d,. ]+", ""));  
539 - String [] loglat = longStr.split(",");  
540 - String lay ="";  
541 - lay+=loglat[loglat.length-1];  
542 - String [] la = loglat = lay.split(" ");  
543 - return la;  
544 - }  
545 -  
546 -  
547 -} 1 +package com.bsth.serviec_jk.xl_basic;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.bsth.serviec_jk.JkToken;
  5 +import com.bsth.serviec_jk.WebserviceSign;
  6 +import com.bsth.utils.HttpUtils;
  7 +import com.fasterxml.jackson.databind.ObjectMapper;
  8 +import org.apache.tomcat.util.http.fileupload.IOUtils;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.scheduling.annotation.EnableScheduling;
  12 +import org.springframework.scheduling.annotation.Scheduled;
  13 +import org.springframework.stereotype.Controller;
  14 +import org.springframework.transaction.annotation.Transactional;
  15 +import org.springframework.web.bind.annotation.RequestMapping;
  16 +import java.io.ByteArrayOutputStream;
  17 +import java.io.IOException;
  18 +import java.io.InputStream;
  19 +import java.net.HttpURLConnection;
  20 +import java.net.MalformedURLException;
  21 +import java.net.URL;
  22 +import java.util.*;
  23 +@Controller
  24 +@RequestMapping("api")
  25 +@EnableScheduling
  26 +public class XlBasicService {
  27 +
  28 + private final static Logger log = LoggerFactory.getLogger(HttpUtils.class);
  29 +
  30 +// private final static String ip = "114.80.178.12:9089";
  31 + private final static String ip = "10.10.150.24:9089";
  32 +
  33 + //线路基本信息接口
  34 + @Transactional()
  35 + @Scheduled(cron = "0 0 1 * * ?") //每天凌晨一点 执行
  36 + public void xlbasic() {
  37 + log.info("调用线路基本信息接口开始---------------");
  38 + long startTime=System.currentTimeMillis();
  39 + Map<String,Object> xlmap = new LinkedHashMap<>();
  40 + String url = "http://180.167.126.126:8992/api/buslineinfo/insertlist";
  41 + try{
  42 + String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";
  43 + String timestamp = String.valueOf(System.currentTimeMillis());
  44 + String nonce = WebserviceSign.getRandomString(5);
  45 + Map<String, String> map = new HashMap<String, String>();
  46 + map.put("timestamp", timestamp);//时间戳
  47 + map.put("nonce", nonce);//随机字符串
  48 + map.put("password", password);//密码
  49 + String signStr = WebserviceSign.getSHA1(map);
  50 + String endpoint = "http://"+ip+"/webservice/rest/line/all?timestamp="+timestamp+"&nonce="+nonce+"&password="+password+"&sign="+signStr;
  51 + InputStream in = null;
  52 + try {
  53 + HttpURLConnection con = (HttpURLConnection)new URL(endpoint).openConnection();
  54 + con.setDoInput(true);
  55 + con.setDoOutput(true);
  56 + con.setRequestMethod("GET");
  57 + con.setConnectTimeout(5000);
  58 + con.setReadTimeout(5000);
  59 + con.setRequestProperty("keep-alive", "true");
  60 + con.setRequestProperty("accept", "application/json");
  61 + con.setRequestProperty("content-type", "application/json");
  62 + if (con.getResponseCode() == 200) {
  63 + in = con.getInputStream();
  64 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  65 + IOUtils.copy(in, bout);
  66 + List m = new ObjectMapper().readValue(bout.toByteArray(), List.class);
  67 + String token = JkToken.jkdata();
  68 + xlmap.put("AccessToken", token);
  69 + xlmap.put("DeleteAll", "true");
  70 + Map stmap = new LinkedHashMap();
  71 + List numlist = new ArrayList();
  72 + for (Object o:m){
  73 + Map ke = (Map)o;
  74 + //替换key
  75 + stmap.put("BusLineCode", ke.get("lineCode"));
  76 + stmap.put("BusLineName", ke.get("name"));
  77 + stmap.put("BusLineEngName", null);
  78 + stmap.put("BusLineShortName", null);
  79 + stmap.put("CompanyCode", null);
  80 + stmap.put("CompanyName", ke.get("company"));
  81 + stmap.put("SubCompanyCode", null);
  82 + stmap.put("SubCompanyName", ke.get("brancheCompany"));
  83 + stmap.put("StartDate", null);
  84 + stmap.put("linePlayType", null);
  85 + stmap.put("BusLinePropertyCode", ke.get("nature"));
  86 + stmap.put("BusLineGradeCode", ke.get("level"));
  87 + stmap.put("CompanyContacts", null);
  88 + stmap.put("ContactsPhone", null);
  89 + stmap.put("BusLineLeader", null);
  90 + stmap.put("LeaderPhone", null);
  91 + stmap.put("ParentBusLineCode", null);
  92 + stmap.put("UpFirstTime", null);
  93 + stmap.put("UpLastTime", null);
  94 + stmap.put("StartingStation", ke.get("startStationName"));
  95 + stmap.put("DnFirstTime", null);
  96 + stmap.put("DnLastTime", null);
  97 + stmap.put("EndStation", ke.get("endStationName"));
  98 + stmap.put("CrossRegion", null);
  99 + stmap.put("Remark", null);
  100 + stmap.put("TiceSeller", null);
  101 + stmap.put("RunTime", null);
  102 + stmap.put("ParkCode", null);
  103 + stmap.put("ParkName", null);
  104 + stmap.put("VehicleConfigurationNum", null);
  105 + stmap.put("RoadVector", null);
  106 + stmap.put("EquipmentLineCode", ke.get("eqLinecode"));
  107 + stmap.put("RouteEvolution", null);
  108 + stmap.put("AirConditionedVehiclesNum", null);
  109 + stmap.put("LineLength", null);
  110 + stmap.put("OrdinaryVehiclesNum", null);
  111 + stmap.put("RoutePlanningType", null);
  112 + stmap.put("ShangHaiLineCode", null);
  113 + stmap.put("IsNightTrain", ke.get("supperLine"));
  114 + stmap.put("WarrantBusNum", null);
  115 + stmap.put("WarrantBusDate", null);
  116 + stmap.put("IsInUse", ke.get("destroy"));
  117 + stmap.put("IsOperate", null);
  118 + stmap.put("LargeIntervalLevel", null);
  119 + numlist.add(stmap);
  120 + stmap = new LinkedHashMap();
  121 + }
  122 + xlmap.put("DataList", numlist);
  123 + int count = 1;
  124 + if (numlist.size() == 0) {
  125 + return;
  126 + }
  127 + if (null != numlist && numlist.size() > 1000) {
  128 +
  129 + for (int i = 0; i < numlist.size(); ) {
  130 + if (count > 1) {
  131 + xlmap.put("DeleteAll", "false");
  132 + }
  133 + if (numlist.size() > i + 1000) {
  134 + log.info("第" + count + "次调用-----------");
  135 + xlmap.put("DataList", numlist.subList(i, i + 1000));
  136 + JSONObject json = new JSONObject(xlmap);
  137 + int resultCount = HttpService.httpRequestResult(json, token, url, count);
  138 + } else {
  139 + log.info("第" + count + "次调用-----------");
  140 + xlmap.put("DataList", numlist.subList(i, numlist.size()));
  141 + JSONObject json = new JSONObject(xlmap);
  142 + int resultCount = HttpService.httpRequestResult(json, token, url, count);
  143 + }
  144 + i = i + 1000;
  145 + count++;
  146 +
  147 + }
  148 + } else {
  149 + xlmap.put("DataList", numlist.subList(0, numlist.size()));
  150 + JSONObject json = new JSONObject(xlmap);
  151 + int resultCount = HttpService.httpRequestResult(json, token, url, count);
  152 + }
  153 + long endTime=System.currentTimeMillis();
  154 + log.info("调用线路基本信息插入接口结束---------------共计执行时间:"+(endTime-startTime));
  155 + }
  156 + } catch (MalformedURLException e) {
  157 + // TODO Auto-generated catch block
  158 + e.printStackTrace();
  159 + } catch (IOException e) {
  160 + // TODO Auto-generated catch block
  161 + e.printStackTrace();
  162 + }
  163 + }catch(Exception e){
  164 + e.printStackTrace();
  165 + }
  166 + }
  167 +
  168 + //线路参数信息接口
  169 + @Transactional()
  170 + @Scheduled(cron = "0 0 1 * * ?")//每天凌晨一点 执行
  171 + public void xlparameter(){
  172 + log.info("调用线路参数信息接口开始---------------");
  173 + long startTime=System.currentTimeMillis();
  174 + String url = "http://180.167.126.126:8992/api/buslineparmterinfo/insertlist";
  175 + Map<String,Object> xlmap = new HashMap<>();
  176 + try{
  177 + String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";
  178 + String timestamp = String.valueOf(System.currentTimeMillis());
  179 + String nonce = WebserviceSign.getRandomString(5);
  180 + Map<String, String> map = new HashMap<String, String>();
  181 + map.put("timestamp", timestamp);//时间戳
  182 + map.put("nonce", nonce);//随机字符串
  183 + map.put("password", password);//密码
  184 + String signStr = WebserviceSign.getSHA1(map);
  185 + String endpoint = "http://"+ip+"/webservice/rest/line/all?timestamp="+timestamp+"&nonce="+nonce+"&password="+password+"&sign="+signStr;
  186 + InputStream in = null;
  187 + try {
  188 + HttpURLConnection con = (HttpURLConnection)new URL(endpoint).openConnection();
  189 + con.setDoInput(true);
  190 + con.setDoOutput(true);
  191 + con.setRequestMethod("GET");
  192 + con.setConnectTimeout(5000);
  193 + con.setReadTimeout(5000);
  194 + con.setRequestProperty("keep-alive", "true");
  195 + con.setRequestProperty("accept", "application/json");
  196 + con.setRequestProperty("content-type", "application/json");
  197 +
  198 + if (con.getResponseCode() == 200) {
  199 + in = con.getInputStream();
  200 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  201 + IOUtils.copy(in, bout);
  202 + Map stmap = new LinkedHashMap();
  203 + List m = new ObjectMapper().readValue(bout.toByteArray(), List.class);
  204 + List numlist = new ArrayList();
  205 + for (Object o:m){
  206 + Map ke = (Map)o;
  207 + stmap.put("BusLineCode",ke.get("lineCode"));
  208 + stmap.put("UpKilometer",null);
  209 + stmap.put("DnKilometer",null);
  210 + stmap.put("MPBegTime",null);
  211 + stmap.put("MPEndTime",null);
  212 + stmap.put("EPBegTime",null);
  213 + stmap.put("EPEndTime",null);
  214 + stmap.put("SNPBegTime",null);
  215 + stmap.put("SNPEndTime",null);
  216 + stmap.put("MPUpTravelTime",null);
  217 + stmap.put("MPDnTravelTime",null);
  218 + stmap.put("EPUpTravelTime",null);
  219 + stmap.put("EPDnTravelTime",null);
  220 + stmap.put("SNPUpTravelTime",null);
  221 + stmap.put("SNPDnTravelTime",null);
  222 + stmap.put("LowUpTravelTime",null);
  223 + stmap.put("LowDnTravelTime",null);
  224 + stmap.put("StartingToParkTime",null);
  225 + stmap.put("StartingToParkKilometer",null);
  226 + stmap.put("LastingToParkTime",null);
  227 + stmap.put("LastingToParkKilometer",null);
  228 + stmap.put("MPLargeMargin",ke.get("earlyIntervalLg"));
  229 + stmap.put("EPLargeMargin",ke.get("lateIntervalLg"));
  230 + stmap.put("LowLargeMargin",ke.get("intervalLg"));
  231 + stmap.put("MaxOverSpeed",null);
  232 + stmap.put("OverStopTime",ke.get("lagStation"));
  233 + stmap.put("LessStopTime",ke.get("skip"));
  234 + stmap.put("BusMaxGather",null);
  235 + stmap.put("DeleteFlag",ke.get("destroy"));
  236 + stmap.put("Remark",null);
  237 + stmap.put("SpeedNormal",ke.get("speedLimit"));
  238 + stmap.put("SpeedRain",null);
  239 + stmap.put("SpeedDenseFog",null);
  240 + stmap.put("SpeedIce",null);
  241 + stmap.put("SpeedFestival",null);
  242 + stmap.put("Speeding",ke.get("speeding"));
  243 + stmap.put("String",ke.get("crossedLine"));
  244 + stmap.put("Transboundary",ke.get("overflights"));
  245 + stmap.put("describe",null);
  246 + stmap.put("ParkingLot",null);
  247 + stmap.put("FromMileage",null);
  248 + stmap.put("OutTime",null);
  249 + stmap.put("ProcessionMileage",null);
  250 + numlist.add(stmap);
  251 + stmap = new LinkedHashMap();
  252 + }
  253 + String token = JkToken.jkdata();
  254 + xlmap.put("AccessToken",token);
  255 + xlmap.put("DeleteAll","true");
  256 + xlmap.put("DataList",numlist);
  257 + int count = 1;
  258 + if (numlist.size() == 0) {
  259 + return;
  260 + }
  261 + if (null != numlist && numlist.size() > 1000) {
  262 +
  263 + for (int i = 0; i < numlist.size(); ) {
  264 + if (count > 1) {
  265 + xlmap.put("DeleteAll", "false");
  266 + }
  267 + if (numlist.size() > i + 1000) {
  268 + log.info("第" + count + "次调用-----------");
  269 + xlmap.put("DataList", numlist.subList(i, i + 1000));
  270 + JSONObject json = new JSONObject(xlmap);
  271 + int resultCount = HttpService.httpRequestResult(json, token, url, count);
  272 + } else {
  273 + log.info("第" + count + "次调用-----------");
  274 + xlmap.put("DataList", numlist.subList(i, numlist.size()));
  275 + JSONObject json = new JSONObject(xlmap);
  276 + int resultCount = HttpService.httpRequestResult(json, token, url, count);
  277 + }
  278 + i = i + 1000;
  279 + count++;
  280 + }
  281 + } else {
  282 + xlmap.put("DataList", numlist.subList(0, numlist.size()));
  283 + JSONObject json = new JSONObject(xlmap);
  284 + int resultCount = HttpService.httpRequestResult(json, token, url, count);
  285 + }
  286 + long endTime=System.currentTimeMillis();
  287 + log.info("调用线路参数信息插入接口结束---------------共计执行时间:"+(endTime-startTime));
  288 + }
  289 + } catch (MalformedURLException e) {
  290 + // TODO Auto-generated catch block
  291 + e.printStackTrace();
  292 + } catch (IOException e) {
  293 + // TODO Auto-generated catch block
  294 + e.printStackTrace();
  295 + }
  296 + }catch(Exception e){
  297 + e.printStackTrace();
  298 + }
  299 + }
  300 +
  301 + ////线路走向接口
  302 + @Transactional()
  303 + @Scheduled(cron = "0 0 1 * * ?")//每天凌晨一点 执行
  304 + public void postrend(){
  305 + log.info("调用线路走向接口开始---------------");
  306 + long startTime=System.currentTimeMillis();
  307 + Map<String,Object> xlmap = new HashMap<>();
  308 + List numlist = new ArrayList();
  309 + String url="http://180.167.126.126:8992/api/stationnetpoints/insertlist";
  310 + try{
  311 + String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";
  312 + String timestamp = String.valueOf(System.currentTimeMillis());
  313 + String nonce = WebserviceSign.getRandomString(5);
  314 + Map<String, String> map = new HashMap<String, String>();
  315 + map.put("timestamp", timestamp);//时间戳
  316 + map.put("nonce", nonce);//随机字符串
  317 + map.put("password", password);//密码
  318 + String signStr = WebserviceSign.getSHA1(map);
  319 + List list = new ArrayList();
  320 + list.add("22");//四家公司
  321 + list.add("26");
  322 + list.add("55");
  323 + list.add("05");
  324 + try {
  325 + for (Object t:list ) {
  326 + String endpoint = "http://"+ip+"/webservice/rest/ld_section/"+t+"?timestamp=" + timestamp + "&nonce=" + nonce + "&password=" + password + "&sign=" + signStr;
  327 + InputStream in = null;
  328 + HttpURLConnection con = (HttpURLConnection) new URL(endpoint).openConnection();
  329 + con.setDoInput(true);
  330 + con.setDoOutput(true);
  331 + con.setRequestMethod("GET");
  332 + con.setConnectTimeout(5000);
  333 + con.setReadTimeout(5000);
  334 + con.setRequestProperty("keep-alive", "true");
  335 + con.setRequestProperty("accept", "application/json");
  336 + con.setRequestProperty("content-type", "application/json");
  337 +
  338 + if (con.getResponseCode() == 200) {
  339 + in = con.getInputStream();
  340 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  341 + IOUtils.copy(in, bout);
  342 + Map stmap = new LinkedHashMap();
  343 + Map m = new ObjectMapper().readValue(bout.toByteArray(), Map.class);
  344 + Map<String, Object> numMap = new LinkedHashMap<>();
  345 + List n = new ArrayList();
  346 + for (Object key : m.keySet()) {
  347 + List lit = (List) m.get(key);
  348 + Map st = (Map) lit.get(0);
  349 + Map section = (Map) st.get("section");
  350 + numMap.put("BusLineCode", st.get("lineCode"));
  351 + numMap.put("BusLineName", null);
  352 + numMap.put("Directions", st.get("directions"));
  353 + numMap.put("DirIndex ", st.get("sectionrouteCode"));
  354 + String lay[] = zbd(section.get("gsectionVector").toString());
  355 + if(lay != null) { //坐标类型问题传不过去 传null
  356 + numMap.put("LongitudeX", String.format("%.8f", Double.parseDouble(lay[0])));
  357 + numMap.put("LatitudeY", String.format("%.8f", Double.parseDouble(lay[1])));
  358 + }else {
  359 + numMap.put("LongitudeX", null);
  360 + numMap.put("LatitudeY", null);
  361 + }
  362 + numlist.add(numMap);
  363 + numMap = new LinkedHashMap<>();
  364 + }
  365 + }
  366 + }
  367 + String token = JkToken.jkdata();
  368 + xlmap.put("AccessToken",token);
  369 + xlmap.put("DeleteAll","true");
  370 + xlmap.put("DataList",numlist);
  371 +
  372 + int count=1;
  373 + if(numlist.size()==0){
  374 + return;
  375 + }
  376 + if(null !=numlist && numlist.size()>1000){
  377 +
  378 + for (int i = 0; i <numlist.size() ; ) {
  379 + if(count > 1){
  380 + xlmap.put("DeleteAll","false");
  381 + }
  382 + if(numlist.size()> i + 1000){
  383 + log.info("第"+count+"次调用-----------");
  384 + xlmap.put("DataList",numlist.subList(i,i+1000));
  385 + JSONObject json = new JSONObject(xlmap);
  386 + int resultCount= HttpService.httpRequestResult(json,token,url,count);
  387 + }else {
  388 + log.info("第"+count+"次调用-----------");
  389 + xlmap.put("DataList",numlist.subList(i,numlist.size()));
  390 + JSONObject json = new JSONObject(xlmap);
  391 + int resultCount= HttpService.httpRequestResult(json,token,url,count);
  392 + }
  393 + i=i+1000;
  394 + count++;
  395 + }
  396 + }else {
  397 + xlmap.put("DataList",numlist.subList(0,numlist.size()));
  398 + JSONObject json = new JSONObject(xlmap);
  399 + int resultCount= HttpService.httpRequestResult(json,token,url,count);
  400 + }
  401 + long endTime=System.currentTimeMillis();
  402 + log.info("调用线路走向插入接口结束---------------共计执行时间:"+(endTime-startTime));
  403 + } catch (MalformedURLException e) {
  404 + // TODO Auto-generated catch block
  405 + e.printStackTrace();
  406 + } catch (IOException e) {
  407 + // TODO Auto-generated catch block
  408 + e.printStackTrace();
  409 + }
  410 + }catch(Exception e){
  411 + e.printStackTrace();
  412 + }
  413 + }
  414 +
  415 + //查询线路停靠站信息接口
  416 + @Transactional()
  417 + @Scheduled(cron = "0 0 1 * * ?")//每天凌晨一点 执行
  418 + public void site(){
  419 + log.info("调用线路停靠站信息接口开始---------------");
  420 + long startTime=System.currentTimeMillis();
  421 + Map<String,Object> xlmap = new HashMap<>();
  422 + List numlist = new ArrayList();
  423 + String url="http://180.167.126.126:8992/api/buslinenetstation/insertlist";
  424 + try{
  425 + String password = "6DABD12209BEDAB0808CF7DC967EC2B4C6748277";
  426 + String timestamp = String.valueOf(System.currentTimeMillis());
  427 + String nonce = WebserviceSign.getRandomString(5);
  428 + Map<String, String> map = new HashMap<String, String>();
  429 + map.put("timestamp", timestamp);//时间戳
  430 + map.put("nonce", nonce);//随机字符串
  431 + map.put("password", password);//密码
  432 + String signStr = WebserviceSign.getSHA1(map);
  433 + List list = new ArrayList();
  434 + list.add("22"); list.add("26"); list.add("55"); list.add("05"); //四家公司
  435 + try {
  436 + for (Object t:list ) {
  437 + String endpoint = "http://"+ip+"/webservice/rest/station/" + t + "?timestamp=" + timestamp + "&nonce=" + nonce + "&password=" + password + "&sign=" + signStr;
  438 + InputStream in = null;
  439 + HttpURLConnection con = (HttpURLConnection) new URL(endpoint).openConnection();
  440 + con.setDoInput(true);
  441 + con.setDoOutput(true);
  442 + con.setRequestMethod("GET");
  443 + con.setConnectTimeout(5000);
  444 + con.setReadTimeout(5000);
  445 + con.setRequestProperty("keep-alive", "true");
  446 + con.setRequestProperty("accept", "application/json");
  447 + con.setRequestProperty("content-type", "application/json");
  448 + if (con.getResponseCode() == 200) {
  449 + in = con.getInputStream();
  450 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  451 + IOUtils.copy(in, bout);
  452 + Map m = new ObjectMapper().readValue(bout.toByteArray(), Map.class);
  453 + Map<String, Object> numMap = new LinkedHashMap<>();
  454 + for (Object key : m.keySet()) {
  455 + List lit = (List) m.get(key);
  456 + for (Object o : lit) {
  457 + Map st = (Map) o;
  458 + Map station = (Map) st.get("station");
  459 + numMap.put("BusLineCode", st.get("lineCode"));
  460 + numMap.put("BusLineName", 0);
  461 + numMap.put("Directions", 0);
  462 + numMap.put("DirIndex", 0);
  463 + numMap.put("StationCode ", st.get("stationCode"));
  464 + numMap.put("StationName", st.get("stationName"));
  465 + if (st.get("stationMark").equals("B")) {
  466 + numMap.put("StationTypeCode", 1);
  467 + } else if (st.get("stationMark").equals("E")) {
  468 + numMap.put("StationTypeCode", 2);
  469 + } else {
  470 + numMap.put("StationTypeCode", 0);
  471 + }
  472 + numMap.put("StationEngName", 0);
  473 + numMap.put("StationAddress", st.get("stationName"));
  474 + if (station != null) {
  475 + numMap.put("LongitudeX", station.get("lon"));
  476 + numMap.put("LatitudeY", station.get("lat"));
  477 + } else {
  478 + numMap.put("LongitudeX", 0);
  479 + numMap.put("LatitudeY", 0);
  480 + }
  481 + numMap.put("FirstTime", st.get("firstTime"));
  482 + numMap.put("LastTime", st.get("endTime"));
  483 + numMap.put("OperateTimes", 0);
  484 + numlist.add(numMap);
  485 + numMap = new LinkedHashMap<>();
  486 + }
  487 + }
  488 + }
  489 + }
  490 + String token = JkToken.jkdata();
  491 + xlmap.put("AccessToken",token);
  492 + xlmap.put("DeleteAll","true");
  493 + xlmap.put("DataList",numlist);
  494 + int count = 1;
  495 + if(numlist.size() == 0){
  496 + return;
  497 + }
  498 + if(null !=numlist && numlist.size() > 1000){
  499 +
  500 + for (int i = 0; i < numlist.size() ; ) {
  501 + if(count > 1){
  502 + xlmap.put("DeleteAll","false");
  503 + }
  504 + if(numlist.size() > i + 1000){
  505 + log.info("第"+count+"次调用-----------");
  506 + xlmap.put("DataList",numlist.subList(i,i+1000));
  507 + JSONObject json = new JSONObject(xlmap);
  508 + int resultCount= HttpService.httpRequestResult(json,token,url,count);
  509 + }else {
  510 + log.info("第"+count+"次调用-----------");
  511 + xlmap.put("DataList",numlist.subList(i,numlist.size()));
  512 + JSONObject json = new JSONObject(xlmap);
  513 + int resultCount= HttpService.httpRequestResult(json,token,url,count);
  514 + }
  515 + i = i + 1000;
  516 + count++;
  517 +
  518 + }
  519 + }else {
  520 + xlmap.put("DataList",numlist.subList(0,numlist.size()));
  521 + JSONObject json = new JSONObject(xlmap);
  522 + int resultCount= HttpService.httpRequestResult(json,token,url,count);
  523 + }
  524 + long endTime=System.currentTimeMillis();
  525 + log.info("调用线路停靠站信息插入接口结束---------------共计执行时间:"+(endTime-startTime));
  526 +
  527 + } catch (MalformedURLException e) {
  528 + // TODO Auto-generated catch block
  529 + e.printStackTrace();
  530 + } catch (IOException e) {
  531 + // TODO Auto-generated catch block
  532 + e.printStackTrace();
  533 + }
  534 + }catch(Exception e){
  535 + e.printStackTrace();
  536 + }
  537 + }
  538 +
  539 + //线路走向坐标类型转换格式
  540 + public static String[] zbd(String gsectionVector){
  541 + String longStr = new String(gsectionVector.replaceAll("[^\\d,. ]+", ""));
  542 + String [] loglat = longStr.split(",");
  543 + String lay ="";
  544 + lay+=loglat[loglat.length-1];
  545 + String [] la = loglat = lay.split(" ");
  546 + return la;
  547 + }
  548 +
  549 +
  550 +}
src/main/java/com/bsth/utils/Arith.java 0 → 100644
  1 +package com.bsth.utils;
  2 +
  3 +import java.math.BigDecimal;
  4 +
  5 +public class Arith {
  6 + /**
  7 + * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
  8 + * 确的浮点数运算,包括加减乘除和四舍五入。
  9 + */
  10 + //默认除法运算精度
  11 + private static final int DEF_DIV_SCALE = 10;
  12 +
  13 + //这个类不能实例化
  14 + private Arith(){
  15 + }
  16 +
  17 + /**
  18 + * 提供精确的加法运算。
  19 + * @param v1 被加数
  20 + * @param v2 加数
  21 + * @return 两个参数的和
  22 + */
  23 + public static double add(Object v1,Object v2){
  24 + BigDecimal b1 = new BigDecimal(v1.toString());
  25 + BigDecimal b2 = new BigDecimal(v2.toString());
  26 + return b1.add(b2).doubleValue();
  27 + }
  28 +
  29 + /**
  30 + * 提供精确的加法运算。
  31 + * @param v1 被加数
  32 + * @param v2 加数
  33 + * @return 两个参数的和
  34 + */
  35 + public static long addLong(Object v1,Object v2){
  36 + BigDecimal b1 = new BigDecimal(v1.toString());
  37 + BigDecimal b2 = new BigDecimal(v2.toString());
  38 + return b1.add(b2).longValue();
  39 + }
  40 +
  41 + /**
  42 + * 提供精确的减法运算。
  43 + * @param v1 被减数
  44 + * @param v2 减数
  45 + * @return 两个参数的差
  46 + */
  47 + public static double sub(Object v1,Object v2){
  48 + BigDecimal b1 = new BigDecimal(v1.toString());
  49 + BigDecimal b2 = new BigDecimal(v2.toString());
  50 + return b1.subtract(b2).doubleValue();
  51 + }
  52 +
  53 + /**
  54 + * 提供精确的乘法运算。
  55 + * @param v1 被乘数
  56 + * @param v2 乘数
  57 + * @return 两个参数的积
  58 + */
  59 + public static double mul(Object v1,Object v2){
  60 + BigDecimal b1 = new BigDecimal(v1.toString());
  61 + BigDecimal b2 = new BigDecimal(v2.toString());
  62 + return b1.multiply(b2).doubleValue();
  63 + }
  64 +
  65 + /**
  66 + * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
  67 + * 小数点以后10位,以后的数字四舍五入。
  68 + * @param v1 被除数
  69 + * @param v2 除数
  70 + * @return 两个参数的商
  71 + */
  72 + public static double div(Object v1,Object v2){
  73 + return div(v1,v2,DEF_DIV_SCALE);
  74 + }
  75 +
  76 + /**
  77 + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
  78 + * 定精度,以后的数字四舍五入。
  79 + * @param v1 被除数
  80 + * @param v2 除数
  81 + * @param scale 表示表示需要精确到小数点以后几位。
  82 + * @return 两个参数的商
  83 + */
  84 + public static double div(Object v1,Object v2,int scale){
  85 + if(scale<0){
  86 + throw new IllegalArgumentException(
  87 + "The scale must be a positive integer or zero");
  88 + }
  89 + BigDecimal b1 = new BigDecimal(v1.toString());
  90 + BigDecimal b2 = new BigDecimal(v2.toString());
  91 + return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
  92 + }
  93 +
  94 + /**
  95 + * 提供精确的小数位四舍五入处理。
  96 + * @param v 需要四舍五入的数字
  97 + * @param scale 小数点后保留几位
  98 + * @return 四舍五入后的结果
  99 + */
  100 + public static double round(Object v,int scale){
  101 + if(scale<0){
  102 + throw new IllegalArgumentException(
  103 + "The scale must be a positive integer or zero");
  104 + }
  105 + BigDecimal b = new BigDecimal(v.toString());
  106 + BigDecimal one = new BigDecimal("1");
  107 + return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
  108 + }
  109 +
  110 + /**
  111 + * 提供精确的类型转换(Float)
  112 + * @param v 需要被转换的数字
  113 + * @return 返回转换结果
  114 + */
  115 + public static float convertsToFloat(Object v){
  116 + BigDecimal b = new BigDecimal(v.toString());
  117 + return b.floatValue();
  118 + }
  119 +
  120 + /**
  121 + * 提供精确的类型转换(Int)不进行四舍五入
  122 + * @param v 需要被转换的数字
  123 + * @return 返回转换结果
  124 + */
  125 + public static int convertsToInt(Object v){
  126 + BigDecimal b = new BigDecimal(v.toString());
  127 + return b.intValue();
  128 + }
  129 +
  130 + /**
  131 + * 提供精确的类型转换(Long)
  132 + * @param v 需要被转换的数字
  133 + * @return 返回转换结果
  134 + */
  135 + public static long convertsToLong(Object v){
  136 + BigDecimal b = new BigDecimal(v.toString());
  137 + return b.longValue();
  138 + }
  139 +
  140 + /**
  141 + * 返回两个数中大的一个值
  142 + * @param v1 需要被对比的第一个数
  143 + * @param v2 需要被对比的第二个数
  144 + * @return 返回两个数中大的一个值
  145 + */
  146 + public static double returnMax(Object v1,Object v2){
  147 + BigDecimal b1 = new BigDecimal(v1.toString());
  148 + BigDecimal b2 = new BigDecimal(v2.toString());
  149 + return b1.max(b2).doubleValue();
  150 + }
  151 +
  152 + /**
  153 + * 返回两个数中小的一个值
  154 + * @param v1 需要被对比的第一个数
  155 + * @param v2 需要被对比的第二个数
  156 + * @return 返回两个数中小的一个值
  157 + */
  158 + public static double returnMin(Object v1,Object v2){
  159 + BigDecimal b1 = new BigDecimal(v1.toString());
  160 + BigDecimal b2 = new BigDecimal(v2.toString());
  161 + return b1.min(b2).doubleValue();
  162 + }
  163 +
  164 + /**
  165 + * 精确对比两个数字
  166 + * @param v1 需要被对比的第一个数
  167 + * @param v2 需要被对比的第二个数
  168 + * @return 如果两个数一样则返回0,如果第一个数比第二个数大则返回1,反之返回-1
  169 + */
  170 + public static int compareTo(Object v1,Object v2){
  171 + BigDecimal b1 = new BigDecimal(v1.toString());
  172 + BigDecimal b2 = new BigDecimal(v2.toString());
  173 + return b1.compareTo(b2);
  174 + }
  175 +}
src/main/java/com/bsth/utils/HttpUtils.java
1 -package com.bsth.utils;  
2 -  
3 -import org.apache.tomcat.util.http.fileupload.IOUtils;  
4 -import org.slf4j.Logger;  
5 -import org.slf4j.LoggerFactory;  
6 -  
7 -import java.io.ByteArrayOutputStream;  
8 -import java.io.IOException;  
9 -import java.io.InputStream;  
10 -import java.io.OutputStream;  
11 -import java.net.HttpURLConnection;  
12 -import java.net.URL;  
13 -import java.util.HashMap;  
14 -import java.util.List;  
15 -import java.util.Map;  
16 -  
17 -/**  
18 - * @author hill  
19 - * @date  
20 - */  
21 -public class HttpUtils {  
22 -  
23 - private final static Logger log = LoggerFactory.getLogger(HttpUtils.class);  
24 -  
25 - public static void request(String url) {  
26 - request(url, new CallBack() {  
27 - @Override  
28 - public void success(byte[] bytes, Map<String, List<String>> header) {  
29 -  
30 - }  
31 -  
32 - @Override  
33 - public void failed() {  
34 -  
35 - }  
36 - });  
37 - }  
38 -  
39 - public static void request(String url, CallBack cb) {  
40 - request(url, cb, "GET");  
41 - }  
42 -  
43 - public static void request(String url, CallBack cb, String method) {  
44 - request(url, cb, method, new HashMap<>());  
45 - }  
46 -  
47 - public static void request(String url, CallBack cb, String method, Map<String, String> header) {  
48 - request(url, cb, method, header, new HashMap<>());  
49 - }  
50 -  
51 - public static void request(String url, CallBack cb, String method, Map<String, String> header, Map<String, Object> param) {  
52 - InputStream in = null;  
53 - OutputStream out = null;  
54 - HttpURLConnection con = null;  
55 - long start = System.currentTimeMillis();  
56 - try {  
57 - con = (HttpURLConnection)new URL(url).openConnection();  
58 - con.setRequestMethod(method);  
59 - con.setRequestProperty("keep-alive", "true");  
60 - con.setRequestProperty("accept", "application/json");  
61 - con.setRequestProperty("content-type", "application/json");  
62 - con.setDoInput(true);  
63 - con.setDoOutput(true);  
64 - con.setReadTimeout(5000);  
65 - con.setConnectTimeout(5000);  
66 -  
67 - if (header.size() > 0) {  
68 - for (Map.Entry<String, String> entry : header.entrySet()) {  
69 - con.setRequestProperty(entry.getKey(), entry.getValue());  
70 - }  
71 - }  
72 -  
73 - if (param.size() > 0) {  
74 - out = con.getOutputStream();  
75 - StringBuilder sb = new StringBuilder();  
76 - for (Map.Entry<String, Object> entry : param.entrySet()) {  
77 - sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());  
78 - }  
79 - out.write(sb.substring(1).getBytes("UTF-8"));  
80 - out.flush();  
81 - }  
82 -  
83 - in = con.getInputStream();  
84 - ByteArrayOutputStream bout = new ByteArrayOutputStream();  
85 - IOUtils.copy(in, bout); bout.close();  
86 - if (con.getResponseCode() == 200) {  
87 - cb.success(bout.toByteArray(), con.getHeaderFields());  
88 - } else {  
89 - log.info(new String(bout.toByteArray()));  
90 - cb.failed();  
91 - }  
92 - } catch (IOException e) {  
93 - // TODO Auto-generated catch block  
94 - log.error("cost:" + (System.currentTimeMillis() - start));  
95 - log.error("HttpUtils.request异常", e);  
96 - cb.failed();  
97 - } catch (Exception e) {  
98 - log.error("处理异常", e);  
99 - } finally {  
100 - con.disconnect();  
101 - try {  
102 - if (in != null) in.close();  
103 - if (out != null) out.close();  
104 - } catch (IOException e) {  
105 - // TODO Auto-generated catch block  
106 - e.printStackTrace();  
107 - }  
108 - }  
109 - }  
110 -} 1 +package com.bsth.utils;
  2 +
  3 +import org.apache.tomcat.util.http.fileupload.IOUtils;
  4 +import org.slf4j.Logger;
  5 +import org.slf4j.LoggerFactory;
  6 +
  7 +import com.alibaba.fastjson.JSON;
  8 +import com.alibaba.fastjson.JSONObject;
  9 +
  10 +import java.io.ByteArrayOutputStream;
  11 +import java.io.DataOutputStream;
  12 +import java.io.IOException;
  13 +import java.io.InputStream;
  14 +import java.io.OutputStream;
  15 +import java.net.HttpURLConnection;
  16 +import java.net.URL;
  17 +import java.util.Date;
  18 +import java.util.HashMap;
  19 +import java.util.List;
  20 +import java.util.Map;
  21 +
  22 +/**
  23 + * @author hill
  24 + * @date
  25 + */
  26 +public class HttpUtils {
  27 +
  28 + private final static Logger log = LoggerFactory.getLogger(HttpUtils.class);
  29 +
  30 + public static void request(String url) {
  31 + request(url, new CallBack() {
  32 + @Override
  33 + public void success(byte[] bytes, Map<String, List<String>> header) {
  34 +
  35 + }
  36 +
  37 + @Override
  38 + public void failed() {
  39 +
  40 + }
  41 + });
  42 + }
  43 +
  44 + public static void request(String url, CallBack cb) {
  45 + request(url, cb, "GET");
  46 + }
  47 +
  48 + public static void request(String url, CallBack cb, String method) {
  49 + request(url, cb, method, new HashMap<>());
  50 + }
  51 +
  52 + public static void request(String url, CallBack cb, String method, Map<String, String> header) {
  53 + request(url, cb, method, header, new HashMap<>());
  54 + }
  55 +
  56 + public static void request(String url, CallBack cb, String method, Map<String, String> header, Map<String, Object> param) {
  57 + InputStream in = null;
  58 + OutputStream out = null;
  59 + DataOutputStream printout = null;
  60 + HttpURLConnection con = null;
  61 + long start = System.currentTimeMillis();
  62 + try {
  63 + con = (HttpURLConnection)new URL(url).openConnection();
  64 + con.setRequestMethod(method);
  65 + con.setRequestProperty("keep-alive", "true");
  66 + con.setRequestProperty("accept", "application/json");
  67 + con.setRequestProperty("content-type", "application/json");
  68 +// con.setRequestProperty("charset", "utf-8");
  69 + con.setDoInput(true);
  70 + con.setDoOutput(true);
  71 + con.setReadTimeout(20000);
  72 + con.setConnectTimeout(20000);
  73 +
  74 + if (header.size() > 0) {
  75 + for (Map.Entry<String, String> entry : header.entrySet()) {
  76 + con.setRequestProperty(entry.getKey(), entry.getValue());
  77 + }
  78 + }
  79 +
  80 + if (param.size() > 0) {
  81 + out = con.getOutputStream();
  82 + StringBuilder sb = new StringBuilder();
  83 + for (Map.Entry<String, Object> entry : param.entrySet()) {
  84 + sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
  85 + }
  86 + out.write(sb.substring(1).getBytes("UTF-8"));
  87 + out.flush();
  88 +
  89 +// printout = new DataOutputStream(con.getOutputStream());
  90 +//// String jsonString = JSON.toJSONString(param);
  91 +//// printout.write(jsonString.getBytes("GBK"));
  92 +// printout.write(("list="+param.get("list").toString()).getBytes("GBK"));
  93 +// printout.flush();
  94 + }
  95 +
  96 + in = con.getInputStream();
  97 + ByteArrayOutputStream bout = new ByteArrayOutputStream();
  98 + IOUtils.copy(in, bout); bout.close();
  99 + if (con.getResponseCode() == 200) {
  100 + cb.success(bout.toByteArray(), con.getHeaderFields());
  101 + } else {
  102 + log.info(new String(bout.toByteArray()));
  103 + cb.failed();
  104 + }
  105 + } catch (IOException e) {
  106 + // TODO Auto-generated catch block
  107 + log.error("cost:" + (System.currentTimeMillis() - start));
  108 + log.error("HttpUtils.request异常", e);
  109 + cb.failed();
  110 + } catch (Exception e) {
  111 + log.error("处理异常", e);
  112 + } finally {
  113 + con.disconnect();
  114 + try {
  115 + if (in != null) in.close();
  116 + if (printout != null) printout.close();
  117 + if (out != null) out.close();
  118 + } catch (IOException e) {
  119 + // TODO Auto-generated catch block
  120 + e.printStackTrace();
  121 + }
  122 + }
  123 + }
  124 +}
src/main/resources/application.yml
1 -spring:  
2 - profiles:  
3 - active: dev  
4 - view:  
5 - suffix: .html  
6 -server:  
7 - session-timeout: -1  
8 -security:  
9 - basic:  
10 - enabled: false  
11 - compression:  
12 - enabled: true  
13 - mime-types: application/json,application/xml,text/html,text/xml,text/plain,text/javascript,text/css,application/javascript  
14 -hibernate:  
15 - jdbc:  
16 - batch_size: 50  
17 -  
18 -# \u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u9650\u5236\u914D\u7F6E  
19 -# File size limit  
20 -multipart:  
21 - maxFileSize: -1  
22 -# Total request size for a multipart/form-data 1 +spring:
  2 + profiles:
  3 + active: prod
  4 + view:
  5 + suffix: .html
  6 +server:
  7 + session-timeout: -1
  8 +security:
  9 + basic:
  10 + enabled: false
  11 + compression:
  12 + enabled: true
  13 + mime-types: application/json,application/xml,text/html,text/xml,text/plain,text/javascript,text/css,application/javascript
  14 +hibernate:
  15 + jdbc:
  16 + batch_size: 50
  17 +
  18 +# \u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u9650\u5236\u914D\u7F6E
  19 +# File size limit
  20 +multipart:
  21 + maxFileSize: -1
  22 +# Total request size for a multipart/form-data
23 maxRequestSize: -1 23 maxRequestSize: -1
24 \ No newline at end of file 24 \ No newline at end of file