From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新

---
 server/system_service/src/main/java/com/doumee/service/business/impl/third/TmsServiceImpl.java |  538 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 538 insertions(+), 0 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/service/business/impl/third/TmsServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/business/impl/third/TmsServiceImpl.java
new file mode 100644
index 0000000..a80b1c6
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/service/business/impl/third/TmsServiceImpl.java
@@ -0,0 +1,538 @@
+package com.doumee.service.business.impl.third;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.business.WmsInterfaceLogMapper;
+import com.doumee.dao.business.model.WmsInterfaceLog;
+import com.doumee.service.business.third.model.TMSContants;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.HttpsUtil;
+import com.doumee.service.business.third.TmsService;
+import com.doumee.service.business.third.model.request.*;
+import com.doumee.service.business.third.model.response.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * TMS骞冲彴瀵规帴Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class TmsServiceImpl implements TmsService {
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private WmsInterfaceLogMapper wmsInterfaceLogMapper;
+    @Value("${debug_model}")
+    private Boolean isDebug;
+    /**
+     * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙�
+     * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                + TMSContants.InterfacePath.getElecByContractNumberList[0];
+
+        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getElecByContractNumberList[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
+        return  response;
+    }
+
+    /**
+     * 杩愯緭鍗昰is杞ㄨ抗
+     * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   List<TmsGisListResponse>  gisList(TmsGisListRequest param){
+
+       if(param.getTransportCode()==null  ){
+          return  new ArrayList<>();
+       }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getGis[0];
+        TmsBaseResponse<List<TmsGisListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getGis[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsGisListResponse>>>(){});
+        if(response ==null){
+            return  new ArrayList<>();
+        }else{
+            return response.getData()==null?new ArrayList<>():response.getData();
+        }
+    }
+    /**
+     * 璁㈠崟鐢熷懡鍛ㄦ湡
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   List<TmsCircleStatusResultListResponse>  getCicleStatusList(TmsCircleStatusListRequest param){
+        List<TmsCircleStatusResultListResponse> list =new ArrayList<>();
+       if(param.getContractNumber()==null  ){
+          return  new ArrayList<>();
+       }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOrderStatusByContractNumber[0];
+        TmsBaseResponse<List<TmsCircleStatusListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderStatusByContractNumber[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsCircleStatusListResponse>>>(){});
+
+        if(response ==null){
+            return  new ArrayList<>();
+        }else{
+            /**
+             *  ddsc(0,"璁㈠崟鐢熸垚",new Integer[]{ChildStatusLevel.create.getKey()}),
+             *         ydpzz (1,"杩愬崟閰嶈浇涓�",new Integer[]{ChildStatusLevel.ysdxc.getKey()
+             *                 ,ChildStatusLevel.ysdcx.getKey()
+             *                 ,ChildStatusLevel.shtg.getKey()
+             *                 ,ChildStatusLevel.shwtg.getKey()
+             *                 ,ChildStatusLevel.ysdcx.getKey()}),
+             *         ckckz (2,"浠撳簱鍑哄簱涓�",new Integer[]{ChildStatusLevel.ddzhddzs.getKey()
+             *                 ,ChildStatusLevel.clqddzs.getKey()}),
+             *         clysz(3, "杞﹁締杩愯緭涓�",new Integer[]{ChildStatusLevel.clqdapp.getKey()}),
+             *         ydh(4,"宸插埌璐�",new Integer[]{ChildStatusLevel.ddzhd.getKey()}),
+             *         yrk
+             */
+            for (int i = 0; i < 6; i++) {
+                TmsCircleStatusResultListResponse t = new TmsCircleStatusResultListResponse();
+                TMSContants.TopStatusLevel tem = TMSContants.TopStatusLevel.ddsc;
+                if(i == 0){
+                    tem=TMSContants.TopStatusLevel.yrk;
+                }
+                if(i == 1){
+                    tem=TMSContants.TopStatusLevel.ydh;
+                }
+                if(i == 2){
+                    tem=TMSContants.TopStatusLevel.clysz;
+                }
+                if(i == 4){
+                    tem=TMSContants.TopStatusLevel.ckckz;
+                }
+                if(i == 3){
+                    tem=TMSContants.TopStatusLevel.ydpzz;
+                }
+                if(i == 5){
+                    tem=TMSContants.TopStatusLevel.ddsc;
+                }
+                t.setName(tem.getName());
+                t.setKey(tem.getKey());
+                t.setSecondList(getSecondCircleStatusList(tem,response.getData()));
+                if(t.getSecondList()!=null & t.getSecondList().size()>0){
+                    list.add(t);
+                }
+            }
+        }
+        Collections.sort(list, (o1, o2) -> {
+            return o2.getKey()  -  o1.getKey(); //鎸夋暟閲忎粠澶у埌灏忔帓搴�
+        });
+        return list;
+    }
+
+    private List<TmsCircleStatusListResponse> getSecondCircleStatusList(TMSContants.TopStatusLevel tem, List<TmsCircleStatusListResponse> data) {
+        if(data ==null ||data.size()==0){
+            return  new ArrayList<>();
+        }
+        List<TmsCircleStatusListResponse> list = new ArrayList<>();
+        Integer[] statusList = tem.getChileIndexList();
+        if(statusList!=null){
+            for(Integer t :statusList){
+                for(TmsCircleStatusListResponse status :data){
+                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FOUR)
+                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.rggx)) {
+                         continue;
+                    }
+                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FOUR)
+                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.app)) {
+                        status.setOrderStatus(TMSContants.ChildStatusLevel.clqdapp.getOrderStatus());
+                    }
+                    if(Constants.equalsInteger(status.getOrderStatus(),Constants.FIVE)
+                            && Constants.equalsInteger(status.getType(),TMSContants.StatusCode.app)) {
+                        status.setOrderStatus(TMSContants.ChildStatusLevel.ddzhd.getOrderStatus());
+                    }
+                    if(Constants.equalsInteger(status.getOrderStatus(),t )){
+                        status.setOrderStatusDes(TMSContants.ChildStatusLevel.getInfo(status.getOrderStatus(),null));
+                        list.add(status);
+                    }
+                    Date td =DateUtil.fromStringToDate("yyy-MM-dd HH:mm:ss",status.getRecordDate());
+                    if(td!=null){
+                        status.setTimeStamp(td.getTime());
+                    }
+                }
+            }
+        }
+        Collections.sort(list, (o1, o2) -> {
+            return (int) (o2.getTimeStamp() - o1.getTimeStamp()); //鎸夋暟閲忎粠澶у埌灏忔帓搴�
+        });
+        return list;
+    }
+
+    /**
+     * 鏈畬鎴愯鍗曞垪琛ㄦ帴鍙�
+     * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public    TmsBasePageResponse<TmsOrderNoFinishListResponse> getNotFinishOrderList(TmsOrderNoFinishListRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getNotFinishOrderList[0];
+        TmsBaseResponse<TmsBasePageResponse<TmsOrderNoFinishListResponse> > response = sendHttpRequest(url,TMSContants.InterfacePath.getNotFinishOrderList[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsBasePageResponse<TmsOrderNoFinishListResponse>> >(){});
+        if(response ==null || response.getData() == null){
+            return  new TmsBasePageResponse<>();
+        }
+        return  response.getData();
+
+    }
+    /**
+     * 鏌ヨ鍙告満鎵�鏈変唬鍔炰换鍔�
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public    TmsBasePageResponse<TmsDriveTaskListResponse> getDriverTaskList(TmsDriverTaskListRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getDriverTaskList[0];
+
+//        url = "http://10.163.4.56:8088"+TMSContants.InterfacePath.getDriverTaskList[0];
+        TmsBaseResponse<TmsBasePageResponse<TmsDriveTaskListResponse> > response = sendHttpRequest(url,TMSContants.InterfacePath.getDriverTaskList[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsBasePageResponse<TmsDriveTaskListResponse>>>(){});
+        if(response ==null || response.getData() == null){
+            return  new TmsBasePageResponse<>();
+        }
+        return  response.getData();
+    }
+    /**
+     * 鍙告満寰呭姙浠诲姟璇︽儏
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public    TmsDriveTaskInfoResponse getDriverTaskDetail(TmsDriverTaskInfoRequest param){
+        if(StringUtils.isBlank(param.getId()) ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getDriverTaskDetail[0];
+
+//        url = "http://10.163.4.56:8088"+TMSContants.InterfacePath.getDriverTaskDetail[0];
+        TmsBaseResponse<TmsDriveTaskInfoResponse > response = sendHttpRequest(url,TMSContants.InterfacePath.getDriverTaskDetail[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsDriveTaskInfoResponse>>(){});
+        if(response ==null || response.getData() == null){
+            return  new TmsDriveTaskInfoResponse();
+        }
+        return  response.getData();
+    }
+    /**
+     * 鍙告満鍚繍
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   boolean  driverStart(TmsDriverStartAndArrivalRequest param){
+        if(StringUtils.isBlank(param.getId()) || StringUtils.isBlank(param.getOptType())){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.driverStart[0];
+//        url = "http://10.163.4.56:8088"+TMSContants.InterfacePath.driverStart[0];
+        TmsBaseResponse<TmsDriveTaskInfoResponse > response = sendHttpRequest(url,TMSContants.InterfacePath.driverStart[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsDriveTaskInfoResponse>>(){});
+        if(response ==null ||   !StringUtils.equals(response.getCode(),"0")){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝浠诲姟鍒拌揣鎻愪氦澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        return  true;
+    }
+    /**
+     * 鍙告満鍒拌揣
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   boolean  driverArrival(TmsDriverStartAndArrivalRequest param){
+        if(StringUtils.isBlank(param.getId())
+                || StringUtils.isBlank(param.getOptType())
+                || param.getStopNumber() == null){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.driverArrival[0];
+//        url = "http://10.163.4.56:8088"+TMSContants.InterfacePath.driverArrival[0];
+        TmsBaseResponse<TmsDriveTaskInfoResponse > response = sendHttpRequest(url,TMSContants.InterfacePath.driverArrival[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsDriveTaskInfoResponse>>(){});
+        if(response ==null  ||!StringUtils.equals(response.getCode(),"0")){
+          throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝浠诲姟鍒拌揣鎻愪氦澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        return  true;
+    }
+    /**
+     * 钀ラ攢浜哄憳淇℃伅瀹炴椂鏌ヨ
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   TmsEmployeeListResponse getEmployeeList(TmsEmployeeListRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getEmployeeList[0];
+        TmsBaseResponse<List<TmsEmployeeListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getEmployeeList[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<List<TmsEmployeeListResponse>>>(){});
+        if(response ==null || response.getData() == null || response.getData().size() ==0){
+            return  new TmsEmployeeListResponse();
+        }
+        return  response.getData().get(0);
+    }
+    /**
+     * 鍑哄簱鑳藉姏缁熻
+     * 鏌ヨ鏌愪釜鍘�/鍏ㄩ儴鍘傜殑浠婃棩璁″垝閲忋�佷粖鏃ュ嚭搴撻噺銆佷粖鏃ユ湭鍑哄簱閲忔暟鎹��
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public TmsOutboundCapabilityResponse getOutboundCapability(TmsFacrotyCodeListRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOutboundCapability[0];
+        TmsBaseResponse<TmsOutboundCapabilityResponse > response = sendHttpRequest(url,TMSContants.InterfacePath.getOutboundCapability[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsOutboundCapabilityResponse>>(){});
+        if(response ==null || response.getData() == null){
+            return  new TmsOutboundCapabilityResponse();
+        }
+        return  response.getData();
+    }
+    /**
+     * 鍚堝悓鍒楄〃鎺ュ彛
+     * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public   TmsBasePageResponse<TmsOrderListResponse>  orderList(TmsOrderListRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOrderList[0];
+        TmsBaseResponse<TmsBasePageResponse<TmsOrderListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderList[1],JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsBasePageResponse<TmsOrderListResponse>>>(){});
+        if(response ==null){
+            return  new TmsBasePageResponse<>();
+        }else{
+            return response.getData()==null?new TmsBasePageResponse<>():response.getData();
+        }
+    }
+    /**
+     * 鍚堝悓璇︽儏鎺ュ彛
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public  TmsOrderInfoResponse orderInfo(TmsOrderInfoRequest param){
+        TmsOrderInfoResponse result = new TmsOrderInfoResponse();
+        if(StringUtils.isBlank(param.getContractNumber())){
+            return  result;
+        }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOrderDetailByContractNumber[0];
+        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderDetailByContractNumber[1]
+                ,param.getContractNumber()
+                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+        if(result.getTransportCode()!=null){
+            TmsGisListRequest p = new TmsGisListRequest();
+            p.setTransportCode(result.getTransportCode());
+            result.setGisList(gisList(p));
+        }
+        TmsCircleStatusListRequest p1 = new TmsCircleStatusListRequest();
+        p1.setContractNumber(param.getContractNumber());
+        result.setCicleStatusList(getCicleStatusList(p1));
+        result.setStartTransportDate(getStartTransportDateByList(result.getCicleStatusList()));
+        return result;
+    }
+
+    private String getStartTransportDateByList(List<TmsCircleStatusResultListResponse> cicleStatusList) {
+        if(cicleStatusList!=null){
+            for(TmsCircleStatusResultListResponse m :cicleStatusList){
+                if(Constants.equalsInteger(m.getKey(),TMSContants.TopStatusLevel.clysz.getKey())){
+                    if(m.getSecondList()!=null){
+                        for(TmsCircleStatusListResponse c :m.getSecondList()){
+                            if(Constants.equalsInteger(c.getOrderStatus(),TMSContants.ChildStatusLevel.clqdapp.getOrderStatus())){
+                                 return  c.getRecordDate();
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * 鍏ㄥ浗鍒拌揣鍦板垎甯冩煡璇㈡煡璇�
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public  List<TmsDistributionOfDeliveryLocResponse>   getDistributionOfDeliveryLocations(TmsFacrotyCodeListRequest param){
+        List<TmsDistributionOfDeliveryLocResponse> result = new ArrayList<>();
+//        if( param.getFacrotyCodeList() == null || param.getFacrotyCodeList().size() == 0){
+//            param.setFacrotyCodeList(new ArrayList<>());
+//            param.getFacrotyCodeList().add("0");
+//        }
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getDistributionOfDeliveryLocations[0];
+        TmsBaseResponse< List<TmsDistributionOfDeliveryLocResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getDistributionOfDeliveryLocations[1],
+                JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse< List<TmsDistributionOfDeliveryLocResponse>>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+
+        return result;
+    }
+    /**
+     * 瀹炴椂搴撳瓨鏌ヨ
+     * @return TmsBaseResponse
+     */
+    @Override
+    public  List<TmsInventoryListResponse>   getRealTimeInventory( ){
+        List<TmsInventoryListResponse> result = new ArrayList<>();
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getRealTimeInventory[0];
+        TmsBaseResponse< List<TmsInventoryListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getRealTimeInventory[1]
+                ,"{}"
+                ,new TypeReference< TmsBaseResponse< List<TmsInventoryListResponse>>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+
+        return result;
+    }
+    /**
+     * 鏌ヨ5涓巶鐨勮繍鍔涜祫婧愬埄鐢ㄦ儏鍐�
+     * @return TmsBaseResponse
+     */
+    @Override
+    public  List<TmsTotalAndReportVehicleQtyResponse>   getTotalAndReportVehicleQty( ){
+        List<TmsTotalAndReportVehicleQtyResponse> result = new ArrayList<>();
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getTotalAndReportVehicleQty[0];
+        TmsBaseResponse< List<TmsTotalAndReportVehicleQtyResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getTotalAndReportVehicleQty[1]
+                ,"{}"
+                ,new TypeReference< TmsBaseResponse< List<TmsTotalAndReportVehicleQtyResponse>>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+
+        return result;
+    }
+    /**
+     * 杩�7鏃ュ埌璐ф儏鍐�(鍚槑缁�)
+     * @return TmsBaseResponse
+     */
+    @Override
+    public  List<TmsSevenArrivalStatusAndDetailsResponse>   getSevenArrivalStatusAndDetails(TmsSevenArrivalDetailsRequest param ){
+        List<TmsSevenArrivalStatusAndDetailsResponse> result = new ArrayList<>();
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getSevenArrivalStatusAndDetails[0];
+        TmsBaseResponse< List<TmsSevenArrivalStatusAndDetailsResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getSevenArrivalStatusAndDetails[1]
+                ,JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse< List<TmsSevenArrivalStatusAndDetailsResponse>>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+        return result;
+    }
+    /**
+     * 鎸囧畾鏃堕棿鑼冨洿鍐呯疮璁″嚭搴撻噺
+     * @return TmsBaseResponse
+     */
+    @Override
+    public  List<TmsOutQtyAndVehicleQtyResponse>   getOutQtyAndVehicleQty(TmsOutQtyAndVehicleQtyRequest param ){
+        List<TmsOutQtyAndVehicleQtyResponse> result = new ArrayList<>();
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +TMSContants.InterfacePath.getOutQtyAndVehicleQty[0];
+        TmsBaseResponse< List<TmsOutQtyAndVehicleQtyResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOutQtyAndVehicleQty[1]
+                ,JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse< List<TmsOutQtyAndVehicleQtyResponse>>>(){});
+        if(response!=null && response.getData()!=null){
+              result =response.getData();
+        }
+        return result;
+    }
+
+
+    /**
+     * 鍙戣捣 tms鎺ュ彛璇锋眰
+     * @param url
+     * @param name
+     * @param param
+     * @param typeReference
+     * @return
+     * @param <T>
+     */
+    public  <T> TmsBaseResponse<T> sendHttpRequest(String url, String name, String param,TypeReference<TmsBaseResponse<T>> typeReference){
+        log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
+        if ( StringUtils.isNotBlank(url)) {
+            String res = null;
+            int success = 0;
+            try {
+                Map<String,String> headers = new HashMap<>();
+                res = HttpsUtil.postJson(url,param);
+                TmsBaseResponse result = JSONObject.parseObject(res, typeReference.getType());
+                logResult(result,name);
+                if(result!=null && result.getData() !=null ){
+
+                }else{
+                    success =1;
+                }
+                return  result;
+            }catch (Exception e){
+                success = 1;
+                log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(param));
+            }finally {
+                saveInterfaceLog(url,name,param,success,res,Constants.ZERO);
+            }
+        }
+        return  null;
+    }
+    @Override
+    public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type){
+        if(wmsInterfaceLogMapper ==null){
+            return;
+        }
+        WmsInterfaceLog log = new WmsInterfaceLog();
+        log.setCreateDate(new Date());
+        log.setUrl(url);
+        log.setEditDate(log.getCreateDate());
+        log.setPlat(Constants.ONE);
+        log.setName(name);
+        log.setIsdeleted(Constants.ZERO);
+        log.setRequest(param);
+        log.setType(type);
+        log.setSuccess(success);
+        log.setRepose(respone);
+        wmsInterfaceLogMapper.insert(log);
+    }
+
+    private static void logResult(TmsBaseResponse res,String name) {
+        if(StringUtils.equals(res.getCode(), TmsBaseResponse.CODE_SUCCESS)){
+            log.info("銆怲MS鎺ュ彛锛�"+name+"銆�================鎴愬姛====\n"+ JSONObject.toJSONString(res));
+        }else{
+            log.error("銆怲MS鎺ュ彛锛�"+name+"銆�================澶辫触====锛歕n"+ JSONObject.toJSONString(res));
+        }
+    }
+
+}

--
Gitblit v1.9.3