liujie
2023-08-31 d6811336d546e4963a9af3bd7cd8654d14193bce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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;
    }
 
 
}