liujie
2023-08-31 8d7dbd6d2c0775d45043474c1525ad827b4cd3bd
src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java
@@ -1,135 +1,135 @@
package com.stylefeng.guns.modular.system.utils;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
 *   码头-车场-客户 运输状态 第三方接口获取数据 APM码头——Import Availability
 *
 * </p>
 *
 * @Author: lisy
 * @date: 2023-05-18 16:52
 * @Description:
 */
public class TerminalInterfaceAcquisitionUtil {
    //Sandbox Interface
    private static final String url  = "https://api-sandbox.apmterminals.com/import-availability";
    //Production Interface
    private static final String proUrl  = "https://api.apmterminals.com/import-availability";
    private static final String auth_url  = "https://api.apmterminals.com/oauth/client_credential/accesstoken";
    private static final String KEY  = "di3RgCcM9zlgb5BG1UiYSIxwYdmYUxTo";
    private static final String SECRET  = "AIJczPxBeocsEjtI";
    private static String bearerToken  = "5dDHq3LwPW3EYZ6rtPGK0zqWsRA5";
    /**
     *
     * @param containerId 容器id
     * @param enums 设施编码
     * @return
     */
    public static TerminaleDataWarpper getTerminalStatus(String containerId,String enums){
        String us = url+ "?assetId="+containerId+"&facilityCode="+enums;
        HttpResponse execute = HttpRequest.get(us).header("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36")
                .header("cookie", "_ga=GA1.2.1226281326.1675309614; _gid=GA1.2.1467106222.1675309614; _ga=GA1.4.1226281326.1675309614; _gid=GA1.4.1467106222.1675309614; AWSALB=1bWqINVI+LJP87FTEXfEw1Ob1nkbr+I4baSbUGUmu5+/LdiqL9ic04Nj7F0Vz3rvharAG7a8dVe3MX6YMNEbUINVr++CCv/UBw6JeCRS0PcbRLxK7wVHb1lPT8Jl; AWSALBCORS=1bWqINVI+LJP87FTEXfEw1Ob1nkbr+I4baSbUGUmu5+/LdiqL9ic04Nj7F0Vz3rvharAG7a8dVe3MX6YMNEbUINVr++CCv/UBw6JeCRS0PcbRLxK7wVHb1lPT8Jl")
                .header("path", "?assetId=" + containerId + "&facilityCode=" + enums)
                .header("Authorization", "Bearer " + bearerToken)
                .execute();
        String body = execute.body();
        int status = execute.getStatus();
        if (status != 200){
            getAuth();
            getTerminalStatus(containerId,enums);
        }
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonArray = null;
        TerminaleDataWarpper warpper = new TerminaleDataWarpper();
        try {
            jsonArray = objectMapper.readTree(body);
            for (JsonNode jsonNode : jsonArray) {
                String appointmentDateTimeLocal = jsonNode.get("appointmentDateTimeLocal").asText();
                warpper.setLfd(appointmentDateTimeLocal);
                String appointmentNumber = jsonNode.get("containerId").asText();
                warpper.setAppointmentNumber(appointmentNumber);
                String containerHolds = jsonNode.get("containerHolds").asText();
                List<String> collect = new ArrayList<>();
                if (ToolUtil.isEmpty(containerHolds)){
                    return warpper;
                }
                if (containerHolds.contains(",")){
                    String[] split = containerHolds.split(",");
                    collect =  Arrays.stream(split).collect(Collectors.toList());
                    if (collect.contains("LINE")){
                        warpper.setLineHold(1);
                    }
                    if (collect.contains("TMF")){
                        warpper.setCustomHold(1);
                    }
                    if (collect.contains("PIER")){
                        warpper.setPierpass(1);
                    }
                    if (collect.contains("CTF")){
                        warpper.setCtf(1);
                    }
                    if (collect.contains("AREA")){
                        warpper.setClosedArea(1);
                    }
                }else {
                    if (containerHolds.equals("LINE")){
                        warpper.setLineHold(1);
                    }
                    if (containerHolds.equals("TMF")){
                        warpper.setCustomHold(1);
                    }
                    if (containerHolds.equals("PIER")){
                        warpper.setPierpass(1);
                    }
                    if (containerHolds.equals("CTF")){
                        warpper.setCtf(1);
                    }
                    if (containerHolds.equals("AREA")){
                        warpper.setClosedArea(1);
                    }
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return warpper;
    }
    public static void getAuth(){
        String us = auth_url+ "?grant_type=client_credentials";
        String body = HttpRequest.post(us)
                .form("client_id", KEY)
                .form("client_id", SECRET)
                .execute().body();
        JSONObject object = JSONObject.parseObject(body);
        Object o = object.get("access_token");
        if (ToolUtil.isNotEmpty(o)){
            bearerToken = (String) o;
        }
    }
}
//package com.stylefeng.guns.modular.system.utils;
//
//import cn.hutool.http.HttpRequest;
//import cn.hutool.http.HttpResponse;
//import com.alibaba.fastjson.JSONObject;
//import com.fasterxml.jackson.databind.JsonNode;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.stylefeng.guns.core.util.ToolUtil;
//import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//import java.util.stream.Collectors;
//
///**
// * <p>
// *   码头-车场-客户 运输状态 第三方接口获取数据 APM码头——Import Availability
// *
// * </p>
// *
// * @Author: lisy
// * @date: 2023-05-18 16:52
// * @Description:
// */
//
//public class TerminalInterfaceAcquisitionUtil {
//
//    //Sandbox Interface
//    private static final String url  = "https://api-sandbox.apmterminals.com/import-availability";
//
//    //Production Interface
//    private static final String proUrl  = "https://api.apmterminals.com/import-availability";
//    private static final String auth_url  = "https://api.apmterminals.com/oauth/client_credential/accesstoken";
//
//    private static final String KEY  = "di3RgCcM9zlgb5BG1UiYSIxwYdmYUxTo";
//    private static final String SECRET  = "AIJczPxBeocsEjtI";
//    private static String bearerToken  = "5dDHq3LwPW3EYZ6rtPGK0zqWsRA5";
//
//
//    /**
//     *
//     * @param containerId 容器id
//     * @param enums 设施编码
//     * @return
//     */
//    public static TerminaleDataWarpper getTerminalStatus(String containerId,String enums){
//        String us = url+ "?assetId="+containerId+"&facilityCode="+enums;
//        HttpResponse execute = HttpRequest.get(us).header("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36")
//                .header("cookie", "_ga=GA1.2.1226281326.1675309614; _gid=GA1.2.1467106222.1675309614; _ga=GA1.4.1226281326.1675309614; _gid=GA1.4.1467106222.1675309614; AWSALB=1bWqINVI+LJP87FTEXfEw1Ob1nkbr+I4baSbUGUmu5+/LdiqL9ic04Nj7F0Vz3rvharAG7a8dVe3MX6YMNEbUINVr++CCv/UBw6JeCRS0PcbRLxK7wVHb1lPT8Jl; AWSALBCORS=1bWqINVI+LJP87FTEXfEw1Ob1nkbr+I4baSbUGUmu5+/LdiqL9ic04Nj7F0Vz3rvharAG7a8dVe3MX6YMNEbUINVr++CCv/UBw6JeCRS0PcbRLxK7wVHb1lPT8Jl")
//                .header("path", "?assetId=" + containerId + "&facilityCode=" + enums)
//                .header("Authorization", "Bearer " + bearerToken)
//                .execute();
//        String body = execute.body();
//        int status = execute.getStatus();
//        if (status != 200){
//            getAuth();
//            getTerminalStatus(containerId,enums);
//        }
//        ObjectMapper objectMapper = new ObjectMapper();
//        JsonNode jsonArray = null;
//        TerminaleDataWarpper warpper = new TerminaleDataWarpper();
//        try {
//            jsonArray = objectMapper.readTree(body);
//            for (JsonNode jsonNode : jsonArray) {
//                String appointmentDateTimeLocal = jsonNode.get("appointmentDateTimeLocal").asText();
//                warpper.setLfd(appointmentDateTimeLocal);
//                String appointmentNumber = jsonNode.get("containerId").asText();
//                warpper.setAppointmentNumber(appointmentNumber);
//                String containerHolds = jsonNode.get("containerHolds").asText();
//                List<String> collect = new ArrayList<>();
//                if (ToolUtil.isEmpty(containerHolds)){
//                    return warpper;
//                }
//                if (containerHolds.contains(",")){
//                    String[] split = containerHolds.split(",");
//                    collect =  Arrays.stream(split).collect(Collectors.toList());
//                    if (collect.contains("LINE")){
//                        warpper.setLineHold(1);
//                    }
//                    if (collect.contains("TMF")){
//                        warpper.setCustomHold(1);
//                    }
//                    if (collect.contains("PIER")){
//                        warpper.setPierpass(1);
//                    }
//                    if (collect.contains("CTF")){
//                        warpper.setCtf(1);
//                    }
//                    if (collect.contains("AREA")){
//                        warpper.setClosedArea(1);
//                    }
//                }else {
//                    if (containerHolds.equals("LINE")){
//                        warpper.setLineHold(1);
//                    }
//                    if (containerHolds.equals("TMF")){
//                        warpper.setCustomHold(1);
//                    }
//                    if (containerHolds.equals("PIER")){
//                        warpper.setPierpass(1);
//                    }
//                    if (containerHolds.equals("CTF")){
//                        warpper.setCtf(1);
//                    }
//                    if (containerHolds.equals("AREA")){
//                        warpper.setClosedArea(1);
//                    }
//                }
//            }
//
//
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }
//        return warpper;
//    }
//
//
//    public static void getAuth(){
//        String us = auth_url+ "?grant_type=client_credentials";
//        String body = HttpRequest.post(us)
//                .form("client_id", KEY)
//                .form("client_id", SECRET)
//                .execute().body();
//        JSONObject object = JSONObject.parseObject(body);
//        Object o = object.get("access_token");
//        if (ToolUtil.isNotEmpty(o)){
//            bearerToken = (String) o;
//        }
//    }
//
//
//}