package com.stylefeng.guns.modular.system.utils;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
import cn.hutool.http.HttpRequest;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
|
import java.io.IOException;
|
|
|
/**
|
* <p>
|
* 第三方卡车公司列表数据
|
* </p>
|
*
|
* @Author: lisy
|
* @date: 2023-05-19 16:01
|
* @Description:
|
*/
|
|
|
public class CargoQueryInteraceUtil {
|
|
private static final String dotUrl = "https://mobile.fmcsa.dot.gov/qc/services/carriers/";
|
private static final String mcUrl = "https://mobile.fmcsa.dot.gov/qc/services/carriers/docket-number/";
|
|
private static final String API_WEB_KEY = "59ed4972942476ba86e3272d892ef1628cf86003";
|
|
public static InsertCargoDetailsWarpper getData(String mcNumber, String dotNumber) throws Exception{
|
InsertCargoDetailsWarpper insertCargoDetailsWarpper = new InsertCargoDetailsWarpper();
|
String us = "";
|
String body = "";
|
if (ToolUtil.isNotEmpty(mcNumber) && ToolUtil.isNotEmpty(dotNumber)){
|
us = dotUrl+ mcNumber+"?webKey="+API_WEB_KEY;
|
body = HttpRequest.get(us)
|
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36")
|
.header("Cookie", "AWSALB=WAH8+geD5YgGqse36enwBDh/DaRTHQ+VjfiaxK2lr9cX20CMl3LyjRlLxptADtdfOEtBea28f+TCXFdo3atMsA97tAitTIAObN5KgsbdgHv65YM1ww40sS2/2LJ6; AWSALBCORS=WAH8+geD5YgGqse36enwBDh/DaRTHQ+VjfiaxK2lr9cX20CMl3LyjRlLxptADtdfOEtBea28f+TCXFdo3atMsA97tAitTIAObN5KgsbdgHv65YM1ww40sS2/2LJ6")
|
.header("path", "/qc/services/carriers/"+mcNumber+"?webKey="+API_WEB_KEY)
|
.header("Scheme", "https")
|
.header("Accept","*/*")
|
.header("Accept-Encoding","gzip, deflate, br")
|
.header("Connection","keep-alive")
|
.header("Referer","same-origin")
|
.execute().body();
|
}
|
if (ToolUtil.isNotEmpty(mcNumber) && ToolUtil.isEmpty(dotNumber) ){
|
us = dotUrl+ mcNumber+"?webKey="+API_WEB_KEY;
|
body = HttpRequest.get(us)
|
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36")
|
.header("Cookie", "AWSALB=WAH8+geD5YgGqse36enwBDh/DaRTHQ+VjfiaxK2lr9cX20CMl3LyjRlLxptADtdfOEtBea28f+TCXFdo3atMsA97tAitTIAObN5KgsbdgHv65YM1ww40sS2/2LJ6; AWSALBCORS=WAH8+geD5YgGqse36enwBDh/DaRTHQ+VjfiaxK2lr9cX20CMl3LyjRlLxptADtdfOEtBea28f+TCXFdo3atMsA97tAitTIAObN5KgsbdgHv65YM1ww40sS2/2LJ6")
|
.header("path", "/qc/services/carriers/"+dotNumber+"?webKey="+API_WEB_KEY)
|
.header("Scheme", "https")
|
.header("Accept","*/*")
|
.header("Accept-Encoding","gzip, deflate, br")
|
.header("Connection","keep-alive")
|
.header("Referer","same-origin")
|
.execute().body();
|
}
|
if (ToolUtil.isNotEmpty(dotNumber) && ToolUtil.isEmpty(mcNumber)){
|
us = mcUrl+ dotNumber+"?webKey="+API_WEB_KEY;
|
body = HttpRequest.get(us)
|
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36")
|
.header("Cookie", "AWSALB=WAH8+geD5YgGqse36enwBDh/DaRTHQ+VjfiaxK2lr9cX20CMl3LyjRlLxptADtdfOEtBea28f+TCXFdo3atMsA97tAitTIAObN5KgsbdgHv65YM1ww40sS2/2LJ6; AWSALBCORS=WAH8+geD5YgGqse36enwBDh/DaRTHQ+VjfiaxK2lr9cX20CMl3LyjRlLxptADtdfOEtBea28f+TCXFdo3atMsA97tAitTIAObN5KgsbdgHv65YM1ww40sS2/2LJ6")
|
.header("path", "/qc/services/carriers/docket-number/"+dotNumber+"?webKey="+API_WEB_KEY)
|
.header("Scheme", "https")
|
.header("Accept","*/*")
|
.header("Accept-Encoding","gzip, deflate, br")
|
.header("Connection","keep-alive")
|
.header("Referer","same-origin")
|
.execute().body();
|
}
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
System.out.println(body);
|
|
JsonNode jsonNode = mapper.readTree(body);
|
JsonNode carrierJson;
|
if(ToolUtil.isEmpty(dotNumber)){
|
carrierJson= jsonNode.get("content").get("carrier");
|
}else {
|
carrierJson= jsonNode.get("content").get(0).get("carrier");
|
}
|
String dotNumber1 = carrierJson.get("dotNumber").asText();
|
insertCargoDetailsWarpper.setUSDot(dotNumber1);
|
|
|
String s = carrierJson.get("legalName").asText();
|
insertCargoDetailsWarpper.setCompanyName(s);
|
|
|
String phyStreet = carrierJson.get("phyStreet").asText();
|
String phyZipcode = carrierJson.get("phyZipcode").asText();
|
String phyCountry = carrierJson.get("phyCountry").asText();
|
String phyCity = carrierJson.get("phyCity").asText();
|
String phyState = carrierJson.get("phyState").asText();
|
String address = phyCity + " " + phyState + " " + phyZipcode;
|
insertCargoDetailsWarpper.setAddress(address);
|
|
|
String totalDrivers = carrierJson.get("totalDrivers").asText();
|
insertCargoDetailsWarpper.setDrivers(totalDrivers);
|
|
String vehicleOosInsp = carrierJson.get("vehicleOosInsp").asText();
|
insertCargoDetailsWarpper.setInspection(vehicleOosInsp);
|
|
String totalPowerUnits = carrierJson.get("totalPowerUnits").asText();
|
insertCargoDetailsWarpper.setPowerUnits(totalPowerUnits);
|
|
|
return insertCargoDetailsWarpper;
|
}
|
|
|
}
|