package com.doumee.service.business.impl.thrid;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.TypeReference;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
|
import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
|
import com.doumee.core.tms.model.request.TmsOrderListRequest;
|
import com.doumee.core.tms.model.response.TmsBaseResponse;
|
import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
|
import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
|
import com.doumee.core.tms.model.response.TmsOrderListResponse;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.HttpsUtil;
|
import com.doumee.core.wms.model.request.*;
|
import com.doumee.core.wms.model.response.WmsBaseDataResponse;
|
import com.doumee.core.wms.model.response.WmsBaseResponse;
|
import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
|
import com.doumee.dao.business.*;
|
import com.doumee.dao.business.model.*;
|
import com.doumee.service.business.third.TmsService;
|
import com.doumee.service.business.third.WmsService;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.*;
|
|
/**
|
* TMS平台对接Service实现
|
* @author 江蹄蹄
|
* @date 2023/11/30 15:33
|
*/
|
@Service
|
@Slf4j
|
public class TmsServiceImpl implements TmsService {
|
@Autowired
|
private PlatformWmsJobMapper platformWmsJobMapper;
|
@Autowired
|
private PlatformGroupMapper platformGroupMapper;
|
@Autowired
|
private CarsMapper carsMapper;
|
@Autowired
|
private MemberMapper memberMapper;
|
@Autowired
|
private PlatformJobMapper platformJobMapper;
|
@Autowired
|
private PlatformWmsDetailMapper platformWmsDetailMapper;
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
@Autowired
|
private WmsInterfaceLogMapper wmsInterfaceLogMapper;
|
|
/**
|
* 电子锁上锁时间接口
|
* 根据合同号,查询电子锁上锁情况;存在批量查询的情况;
|
* @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()
|
+systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_LOCK_STATUS_URL).getCode();
|
|
TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"【TMS】电子锁上锁时间接口",JSONObject.toJSONString(param)
|
,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
|
return response;
|
}
|
|
/**
|
* 合同列表接口
|
* 根据区域ID集合+筛选条件(合同号、制单开始日期、制单结束日期、发货地、到货地、省份,非需要),返回合同列表信息,按照时间倒序展示;
|
* @param param 参数
|
* @return TmsBaseResponse
|
*/
|
@Override
|
public TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param){
|
String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
|
+systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode();
|
TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"合同列表接口",JSONObject.toJSONString(param)
|
,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){});
|
return response;
|
}
|
/**
|
* 合同详情接口
|
* @param param 参数
|
* @return TmsBaseResponse
|
*/
|
@Override
|
public TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param){
|
String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
|
+systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode();
|
TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"合同详情接口",JSONObject.toJSONString(param)
|
,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
|
return response;
|
}
|
|
/**
|
* 发起 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 {
|
}
|
}
|
return null;
|
}
|
private static void logResult(TmsBaseResponse res,String name) {
|
if(StringUtils.equals(res.getCode(), TmsBaseResponse.CODE_SUCCESS)){
|
log.info("【TMS接口:"+name+"】================成功====\n"+res);
|
}else{
|
log.error("【TMS接口:"+name+"】================失败====:\n"+ res);
|
}
|
}
|
|
}
|