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<String, Object> map2 = new HashMap<>();
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("type", "tracking_request");
|
HashMap<String, Object> 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){
|
terminaleDataWarpper.setLfd(lfd);
|
}
|
|
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()) && ToolUtil.isNotEmpty(lfd)){
|
terminaleDataWarpper.setLineHold("RELEASE");
|
}
|
if("PENDING".equals(terminaleDataWarpper.getCustomHold()) && ToolUtil.isNotEmpty(lfd)){
|
terminaleDataWarpper.setCustomHold("RELEASE");
|
}
|
if("PENDING".equals(terminaleDataWarpper.getPierpass()) && ToolUtil.isNotEmpty(lfd)){
|
terminaleDataWarpper.setPierpass("RELEASE");
|
}
|
if("PENDING".equals(terminaleDataWarpper.getCtf()) && ToolUtil.isNotEmpty(lfd)){
|
terminaleDataWarpper.setCtf("RELEASE");
|
}
|
break;
|
}
|
if(i==0){
|
// 货柜号匹配不上
|
return null;
|
}
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
return terminaleDataWarpper;
|
}
|
return terminaleDataWarpper;
|
}
|
|
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("dd/MM/yyyy").format(parse);
|
return format;
|
}
|
}
|