package com.stylefeng.guns.modular.system.utils.PortUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.utils.HttpRequest; import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; public class FortyNineUtil { public static String trackingList(String blNo){ String trackingId=""; try { String s = HttpRequest.sendGet("https://api.terminal49.com/v2/tracking_requests", ""); Object data = JSONObject.parseObject(s).get("data"); JSONArray array = JSONArray.parseArray(data.toString()); for (Object o : array) { Object attributes = JSONObject.parseObject(o.toString()).get("attributes"); String request_number = JSONObject.parseObject(attributes.toString()).get("request_number").toString(); if(blNo.equals(request_number)){ trackingId = JSONObject.parseObject(o.toString()).get("id").toString(); } } System.out.println(trackingId); return trackingId; }catch (Exception e){ e.getCause(); return null; } } // 根据bl 和 scac 获取tracking_request 请求id public static String trackingRequest(String blNo,String scac) { HashMap map2 = new HashMap<>(); HashMap map = new HashMap<>(); map.put("type", "tracking_request"); HashMap map1 = new HashMap<>(); map1.put("request_number", blNo); map1.put("request_type", "bill_of_lading"); map1.put("scac", scac); map.put("attributes", map1); map2.put("data",map); JSONObject jsonObject = new JSONObject(map2); try { String s = HttpRequest.sendPost("https://api.terminal49.com/v2/tracking_requests", jsonObject); Object data = JSONObject.parseObject(s).get("data"); String id = JSONObject.parseObject(data.toString()).get("id").toString(); return id; }catch (Exception e){ return null; } } public static String getShipmentId(String id) { String s = HttpRequest.sendGet(" https://api.terminal49.com/v2/tracking_requests/"+id, ""); try { JSONObject jsonObject = JSONObject.parseObject(s); Object data = jsonObject.get("data"); Object relationships = JSONObject.parseObject(data.toString()).get("relationships"); Object trackedObject = JSONObject.parseObject(relationships.toString()).get("tracked_object"); Object data1 = JSONObject.parseObject(trackedObject.toString()).get("data"); Object value = JSONObject.parseObject(data1.toString()).get("id"); return value.toString(); }catch (Exception e){ e.printStackTrace(); return null; } } public static TerminaleDataWarpper getContainerNo(String shipmentId, String containerNo) { int i=0; String s = HttpRequest.sendGet("https://api.terminal49.com/v2/shipments/"+shipmentId, ""); TerminaleDataWarpper terminaleDataWarpper = new TerminaleDataWarpper(); try { JSONObject jsonObject = JSONObject.parseObject(s); Object data = jsonObject.get("data"); Object relationships = JSONObject.parseObject(data.toString()).get("relationships"); Object trackedObject = JSONObject.parseObject(relationships.toString()).get("containers"); Object data1 = JSONObject.parseObject(trackedObject.toString()).get("data"); JSONArray array = JSONObject.parseArray(data1.toString()); for (Object o : array) { JSONObject dataInfo = JSONObject.parseObject(o.toString()); String id = dataInfo.get("id").toString(); String container = HttpRequest.sendGet("https://api.terminal49.com/v2/containers/"+id, ""); JSONObject containerJson = JSONObject.parseObject(container); Object data2 = containerJson.get("data"); Object attributes = JSONObject.parseObject(data2.toString()).get("attributes"); Object number = JSONObject.parseObject(attributes.toString()).get("number"); // 匹配这个号码 匹配到 String containers = number.toString(); if(containerNo.equals(containers)){ i = 1; String lfd = String.valueOf(JSONObject.parseObject(attributes.toString()).get("pickup_lfd")); try { lfd= getTime(lfd); terminaleDataWarpper.setLfd(lfd); }catch (Exception e){ } String available = JSONObject.parseObject(attributes.toString()).get("available_for_pickup").toString(); terminaleDataWarpper.setAvailability(available); String location = String.valueOf(JSONObject.parseObject(attributes.toString()).get("location_at_pod_terminal")); terminaleDataWarpper.setClosedArea(location); String freight = ""; String customs = ""; String TMF = ""; String CTF = ""; String holds = JSONObject.parseObject(attributes.toString()).get("holds_at_pod_terminal").toString(); JSONArray array1 = JSONObject.parseArray(holds); for (Object o1 : array1) { JSONObject jsonObject1 = JSONObject.parseObject(o1.toString()); if("freight".equals(jsonObject1.get("name").toString())){ freight = jsonObject1.get("status").toString(); terminaleDataWarpper.setLineHold(freight); } if("customs".equals(jsonObject1.get("name").toString())){ customs = jsonObject1.get("status").toString(); terminaleDataWarpper.setCustomHold(customs); } if("TMF".equals(jsonObject1.get("name").toString())){ TMF = jsonObject1.get("status").toString(); terminaleDataWarpper.setPierpass(TMF); } if("other".equals(jsonObject1.get("name").toString()) && "CTF - Clean Truck Fee".equals(jsonObject1.get("description").toString())){ CTF = jsonObject1.get("status").toString(); terminaleDataWarpper.setCtf(CTF); } } if("PENDING".equals(terminaleDataWarpper.getLineHold()) && !"null".equals(lfd)){ terminaleDataWarpper.setLineHold("RELEASE"); } if("PENDING".equals(terminaleDataWarpper.getCustomHold()) && !"null".equals(lfd)){ terminaleDataWarpper.setCustomHold("RELEASE"); } if("PENDING".equals(terminaleDataWarpper.getPierpass()) && !"null".equals(lfd)){ terminaleDataWarpper.setPierpass("RELEASE"); } if("PENDING".equals(terminaleDataWarpper.getCtf()) && !"null".equals(lfd)){ terminaleDataWarpper.setCtf("RELEASE"); } if(ToolUtil.isEmpty(location) && "null".equals(lfd)){ terminaleDataWarpper.setClosedArea("ON VESSEL"); } break; } if(i==0){ // 货柜号匹配不上 return null; } } }catch (Exception e){ e.printStackTrace(); return terminaleDataWarpper; } return terminaleDataWarpper; } public static String getContainerNoOne(String shipmentId, String containerNo) { int i=0; String s = HttpRequest.sendGet("https://api.terminal49.com/v2/shipments/"+shipmentId, ""); TerminaleDataWarpper terminaleDataWarpper = new TerminaleDataWarpper(); try { JSONObject jsonObject = JSONObject.parseObject(s); Object data = jsonObject.get("data"); Object attributes = JSONObject.parseObject(data.toString()).get("attributes"); Object time = JSONObject.parseObject(attributes.toString()).get("pod_eta_at"); return String.valueOf(time).substring(0,10); }catch (Exception e){ e.printStackTrace(); return null; } } public static void main(String[] args) { TerminaleDataWarpper tcnu6817755 = getContainerNo("7e4c2878-235f-4414-8804-9dd6568a5d6f", "TCNU6817755"); System.out.println(tcnu6817755); } public static String getTime(String time) throws ParseException { String t = time.substring(0, time.indexOf("T"))+" 00:00:00"; Date parse = new SimpleDateFormat("yyyy-MM-dd").parse(t); String format = new SimpleDateFormat("MM/dd/yyyy").format(parse); return format; } }