src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/stylefeng/guns/modular/system/enums/FacilityCodeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/stylefeng/guns/modular/system/warpper/TerminaleDataWarpper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java
@@ -3,10 +3,13 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.modular.system.enums.FacilityCodeEnum; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.utils.TerminalInterfaceAcquisitionUtil; import com.stylefeng.guns.modular.system.utils.tips.ErrorTip; import com.stylefeng.guns.modular.system.utils.tips.SuccessTip; import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -264,6 +267,7 @@ driverIds.add(driverIdOne); } List<TTransportation> tTransportations = tTransportationService.selectList(new EntityWrapper<TTransportation>().eq("order_id", orderId).in("driver_id", driverIds)); TerminaleDataWarpper terminalStatus = TerminalInterfaceAcquisitionUtil.getTerminalStatus("WFHU5080179", FacilityCodeEnum.USLAX.getMsg()); for (TTransportation tDriver : tTransportations) { OrderDriverInfo orderDriverInfo = new OrderDriverInfo(); orderDriverInfo.setId(tDriver.getId()); @@ -283,7 +287,7 @@ orderDriverInfo.setChassiess(powerUnitsService.selectById(tDriver.getChassises())); // TODO 第三方 目前不知道对接那个 orderDriverInfo.setAppointmentNumber(null); orderDriverInfo.setAppointmentNumber(terminalStatus.getAppointmentNumber()); orderDriverInfos.add(orderDriverInfo); @@ -291,6 +295,15 @@ transportInfo.setTruckCompany(tOrder.getTruckCompany()); transportInfo.setPickupTime(tOrder.getPickupTimeTruck()); transportInfo.setStreetTurn(tOrder.getStreetTurn()); transportInfo.setLineHold(terminalStatus.getLineHold()); transportInfo.setCustomHold(terminalStatus.getCustomHold()); transportInfo.setPierpass(terminalStatus.getPierpass()); transportInfo.setCTF(terminalStatus.getCtf()); transportInfo.setClosedArea(terminalStatus.getClosedArea()); transportInfo.setLFD(terminalStatus.getLfd()); transportInfo.setList(orderDriverInfos); Integer examSite = tOrder.getExamSite(); if(Objects.nonNull(examSite)){ src/main/java/com/stylefeng/guns/modular/system/enums/FacilityCodeEnum.java
New file @@ -0,0 +1,44 @@ package com.stylefeng.guns.modular.system.enums; /** * <p> * 调用容器事件历史接口的 设置编码 * </p> * * @Author: lisy * @date: 2023-05-21 23:50 * @Description: */ public enum FacilityCodeEnum { ESALG("ESALG"), NGAPP("NGAPP"), BHKBS("BHKBS"), SEGOT("SEGOT"), BRITJ("BRITJ"), MXLZC("MXLZC"), USLAX("USLAX"), USMIA("USMIA"), NLMSV("NLMSV"), LRMLW("LRMLW"), USMOB("USMOB"), CRPMN("CRPMN"), NGONN("NGONN"), USNWK("USNWK"), MAPTM("MAPTM"), ITVDL("ITVDL"), ESVLC("ESVLC"), MXPGO("MXPGO"), ; String msg; FacilityCodeEnum(String msg) { this.msg = msg; } public String getMsg() { return msg; } } src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java
@@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.system.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @@ -24,4 +25,16 @@ private Date pickupTime; private Integer streetTurn; @ApiModelProperty(value = "1:YES 2:NO") private Integer lineHold; @ApiModelProperty(value = "1:YES 2:NO") private Integer customHold; @ApiModelProperty(value = "1:YES 2:NO") private Integer pierpass; @ApiModelProperty(value = "1:YES 2:NO") private Integer CTF; private String LFD; @ApiModelProperty(value = "1:YES 2:NO") private Integer closedArea; } src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java
New file @@ -0,0 +1,133 @@ 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.*; 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; } } } src/main/java/com/stylefeng/guns/modular/system/warpper/TerminaleDataWarpper.java
New file @@ -0,0 +1,34 @@ package com.stylefeng.guns.modular.system.warpper; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * <p> * 订单详情——运输安排 * </p> * * @Author: lisy * @date: 2023-05-22 16:52 * @Description: */ @Data public class TerminaleDataWarpper { @ApiModelProperty(value = "1:YES 2:NO") private Integer lineHold = 2; @ApiModelProperty(value = "1:YES 2:NO") private Integer customHold = 2; @ApiModelProperty(value = "1:YES 2:NO") private Integer pierpass = 2; @ApiModelProperty(value = "1:YES 2:NO") private Integer ctf = 2; private String lfd; @ApiModelProperty(value = "1:YES 2:NO") private Integer closedArea = 2; private String appointmentNumber; }