李俊

内网迁移环境代码调整

......@@ -57,8 +57,7 @@ public class HsCodeInterface {
return resultHsCode;
}
}catch(Exception ex){
log.error(ex.getMessage());
ex.printStackTrace();
log.error(ex.getMessage(),ex);
resultHsCode = new ResultHsCode(Boolean.FALSE,"30101","数据查询异常",null);
return resultHsCode;
}finally {
......
......@@ -62,6 +62,14 @@ public class ApiService {
@Value("${api.address.complete-msg-url}")
String completeMsgUrl;
@Value("${api.address.proxy-url}")
String proxyUrl;
@Value("${api.address.proxy-port}")
Integer proxyPort;
@Value("${spring.profiles.active}")
String env;
@Autowired
ReceiptMessageRepository receiptMessageRepository;
......@@ -89,7 +97,11 @@ public class ApiService {
Map<String,String> map = new HashMap<String,String>();
map.put("username", this.username);
map.put("password", this.password);
String tokenJson = HttpUtils.doPost(this.tokenUrl,map);
// String tokenJson = HttpUtils.doPost(this.tokenUrl,map);
log.info("tokenUrl:"+this.tokenUrl);
String tokenJson = HttpUtils.doProxyPost(this.tokenUrl,map,this.proxyUrl,this.proxyPort);
log.info("getToken:"+tokenJson);
TokenResult tokenResult = JsonToJava.parseJson(tokenJson,TokenResult.class);
return tokenResult;
}
......@@ -141,7 +153,8 @@ public class ApiService {
String objJson = JsonToJava.toJson(d);
log.info("推送海关回执json: " + objJson);
//推送海关回执数据
String json = HttpUtils.doPost(this.customsUrl,objJson,headerMap);
// String json = HttpUtils.doPost(this.customsUrl,objJson,headerMap);
String json = HttpUtils.doProxyPost(this.customsUrl,objJson,headerMap,this.proxyUrl,this.proxyPort);
//接口响应时间
declearTask.setResponseTime(new Date());
TokenResult tokenResult = JsonToJava.parseJson(json,TokenResult.class);
......@@ -166,7 +179,8 @@ public class ApiService {
declearTask.setResponseResults("99999");
declearTask.setResponseContent(ex.getMessage());
declearTaskList.add(declearTask);
ex.printStackTrace();
log.error(ex.getMessage(),ex);
}
});
declearTaskList.forEach(declearTask -> {
......@@ -204,7 +218,8 @@ public class ApiService {
});
this.sendMawb(token,mawbList);
}catch(Exception ex){
ex.printStackTrace();
log.error(ex.getMessage(),ex);
}
}
/**
......@@ -262,7 +277,8 @@ public class ApiService {
declearTask.setResponseResults("99999");
declearTask.setResponseContent(ex.getMessage());
declearTaskList.add(declearTask);
ex.printStackTrace();
log.error(ex.getMessage(),ex);
}
});
declearTaskList.forEach(declearTask -> {
......
......@@ -234,7 +234,8 @@ public class ChmConsignmentService {
}catch (Exception e){
result=null;
e.printStackTrace();
log.error(e.getMessage(),e);
log.error("convertToChmConsignment() error:"+e.getMessage());
}
return result;
......@@ -292,7 +293,8 @@ public class ChmConsignmentService {
}
}catch (Exception e){
result=null;
e.printStackTrace();
log.error(e.getMessage(),e);
log.error("convertToChmConsignmentFedex() error:"+e.getMessage());
}
return result;
......@@ -430,7 +432,8 @@ public class ChmConsignmentService {
result.setOverseasConsigneeEname(consignment.getOverseasConsignorFnCname());
}catch (Exception e){
result=null;
e.printStackTrace();
log.error(e.getMessage(),e);
log.error("convertToChmConsignment() error:"+e.getMessage());
}
return result;
......
......@@ -45,7 +45,8 @@ public class DeclearTaskService{
declareTaskRepository.saveAll(declareTaskList);
}
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);
}
}
......@@ -70,7 +71,8 @@ public class DeclearTaskService{
declareTaskRepository.saveAll(declareTaskList);
}
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);
}
}
......
......@@ -27,8 +27,8 @@ public class DictionaryEntriesService {
try {
result=dictionaryEntriesRepository.findAllDictionaryEntries();
}catch (Exception e){
e.printStackTrace();
log.error("getAllDictionaryEntries() error:"+e.getMessage());
log.error(e.getMessage(),e);
}
return result;
}
......
......@@ -3,14 +3,18 @@ package com.erry.iclear.dateInterface.service;
import com.erry.iclear.dateInterface.api.request.FedexConsignment;
import com.erry.iclear.dateInterface.api.request.ConsignmentDetail;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class FedexConsignmentService {
public List<FedexConsignment> fedexConsignmentList(List<DeclaredInfo> consignment){
List<FedexConsignment> fedexConsignmentList = new ArrayList<>();
try{
......@@ -62,7 +66,8 @@ public class FedexConsignmentService {
fedexConsignmentList.add(fedexConsignment);
}
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);
}
return fedexConsignmentList;
}
......
......@@ -61,8 +61,7 @@ public class HsCodeService {
resultHsCode.setMsg("操作成功");
resultHsCode.setHsCodeResultList(hsCodeList);
}catch(Exception ex){
log.error(ex.getMessage());
ex.printStackTrace();
log.error(ex.getMessage(),ex);
resultHsCode.setSuccess(Boolean.FALSE);
resultHsCode.setCode("30101");
resultHsCode.setMsg("数据查询异常");
......@@ -84,7 +83,8 @@ public class HsCodeService {
resultHsCode.setHsCodeResultList(hsCodeList);
}catch(Exception ex){
log.error(ex.getMessage());
ex.printStackTrace();
log.error(ex.getMessage(),ex);
resultHsCode.setSuccess(Boolean.FALSE);
resultHsCode.setCode("30101");
resultHsCode.setMsg("数据查询异常");
......
......@@ -44,7 +44,7 @@ public class IClearApiHsCodeLogService {
rs = true;
}
}catch(Exception ex){
ex.printStackTrace();
log.error(ex.getMessage(),ex);
}
return rs;
}
......
......@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
/**
* @author Administrator
*/
//@Component
@Component
@Slf4j
public class IClearApiTask {
@Autowired
......@@ -54,10 +54,31 @@ public class IClearApiTask {
log.error("pushMawbTask() error:" +e.getMessage());
}
}
/*
* wy on 2022年1月20日17:50:57
* 经clj确认,这两个任务没有必要
* *//**
/**
* 获取token
* @throws Exception
*/
private void getToken() throws Exception{
if(token == null){
try {
//获取token
TokenResult tokenResult = apiService.getToken();
if(tokenResult.getErrorcode().equals(Constants.ApiResponseKeys.SUCCESS)){
this.token = tokenResult.getData().getToken();
}
}catch(Exception ex){
log.error(ex.getMessage(),ex);
}
}
if(this.token == null){
throw new Exception("获取token失败!");
}
}
/*
* wy on 2022年1月20日17:50:57
* 经clj确认,这两个任务没有必要
* *//**
* TODO 定时任务:每分钟推送: 推送失败的回执数据,
*//*
@Scheduled(cron = "${task.pushErrorReturnDate}")
......@@ -90,24 +111,4 @@ public class IClearApiTask {
}*//*
}*/
/**
* 获取token
* @throws Exception
*/
private void getToken() throws Exception{
if(token == null){
try {
//获取token
TokenResult tokenResult = apiService.getToken();
if(tokenResult.getErrorcode().equals(Constants.ApiResponseKeys.SUCCESS)){
this.token = tokenResult.getData().getToken();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
if(this.token == null){
throw new Exception("获取token失败!");
}
}
}
......
package com.erry.iclear.dateInterface.util;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
/**
* 利用HttpClient进行post请求的工具类
......@@ -23,6 +28,88 @@ import org.apache.http.util.EntityUtils;
public class HttpUtils {
private static String CHARSET = "utf-8";
/**
* post请求
* @param url
* @param json
* @return
*/
public static String doProxyPost(String url,String json,Map<String,String> headerMap,String proxyUrl,Integer port) throws Exception {
HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
httpClient = SSLClient.getProxyHttpsClient(proxyUrl,port);
try{
httpPost = new HttpPost(url);
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>();
StringEntity entity = new StringEntity(json, HttpUtils.CHARSET);//解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
Iterator headerIterator = headerMap.entrySet().iterator();
while(headerIterator.hasNext()){
Entry<String,String> elem = (Entry<String, String>) headerIterator.next();
httpPost.addHeader(elem.getKey(),elem.getValue());
}
// /** 设置代理IP **/
// HttpHost proxy = new HttpHost(proxyUrl, 3128);
// httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
HttpResponse response = httpClient.execute(httpPost);
if(response != null){
HttpEntity resEntity = response.getEntity();
if(resEntity != null){
result = EntityUtils.toString(resEntity,HttpUtils.CHARSET);
}
}
} finally {
httpClient.getConnectionManager().shutdown(); //关闭连接
}
return result;
}
public static String doProxyPost(String url,Map<String,String> paramMap,String proxyUrl,Integer port) throws Exception {
// HttpClient httpClient = null;
HttpPost httpPost = null;
String result = null;
HttpClient httpClient = SSLClient.getProxyHttpsClient(proxyUrl,port);
try{
httpPost = new HttpPost(url);
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>();
Iterator iterator = paramMap.entrySet().iterator();
while(iterator.hasNext()){
Entry<String,String> elem = (Entry<String, String>) iterator.next();
list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));
}
if(list.size() > 0){
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,HttpUtils.CHARSET);
httpPost.setEntity(entity);
}
/** 设置代理IP **/
// HttpHost proxy = new HttpHost(proxyUrl, 3128);
// httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
HttpResponse response = httpClient.execute(httpPost);
if(response != null){
HttpEntity resEntity = response.getEntity();
if(resEntity != null){
result = EntityUtils.toString(resEntity,HttpUtils.CHARSET);
}
}
} finally {
httpClient.getConnectionManager().shutdown(); //关闭连接
}
return result;
}
/**
* post请求
* @param url
......@@ -62,6 +149,7 @@ public class HttpUtils {
return result;
}
/**
* post请求 map参数
* @param url
......@@ -141,4 +229,4 @@ public class HttpUtils {
}
return result;
}
}
\ No newline at end of file
}
......
package com.erry.iclear.dateInterface.util;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/**
* 用于进行Https请求的HttpClient,指定传输协议为TLSv1.2
......@@ -19,6 +32,9 @@ import org.apache.http.impl.client.DefaultHttpClient;
public class SSLClient extends DefaultHttpClient{
public SSLClient() throws Exception{
super(); //传输协议需要根据自己的判断 
trustAllHosts();
}
private void trustAllHosts() throws NoSuchAlgorithmException, KeyManagementException {
SSLContext ctx = SSLContext.getInstance("TLSv1.2");
X509TrustManager tm = new X509TrustManager() {
@Override
......@@ -40,4 +56,40 @@ public class SSLClient extends DefaultHttpClient{
SchemeRegistry sr = ccm.getSchemeRegistry();
sr.register(new Scheme("https", 443, ssf));
}
}
\ No newline at end of file
public CloseableHttpClient getProxyHttpClient(String qlb,int port){
HttpHost proxy = new HttpHost(qlb, port, "http");
//把代理设置到请求配置
RequestConfig defaultRequestConfig = RequestConfig.custom()
.setProxy(proxy)
.build();
CloseableHttpClient httpclient = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
return httpclient;
}
public static CloseableHttpClient getProxyHttpsClient(String qlb,Integer port) throws NoSuchAlgorithmException, KeyManagementException {
X509TrustManager x509mgr = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] xcs, String string) {
}
@Override
public void checkServerTrusted(X509Certificate[] xcs, String string) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[] { x509mgr }, null);
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpHost proxy = new HttpHost(qlb, port, "http");
RequestConfig defaultRequestConfig = RequestConfig.custom()
.setProxy(proxy)
.build();
CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf)
.setDefaultRequestConfig(defaultRequestConfig).build();
return httpclient;
}
}
......
......@@ -12,9 +12,9 @@ task:
#推送完整报文
pushMawbTask: 0 0/1 * * * ?
#推送失败的回执数据
pushErrorReturnDate: 0 0/30 * * * ?
pushErrorReturnDate: 0 0/3 * * * ?
#推送失败的申报数据
pushErrorDeclareDate: 0 0/30 * * * ?
pushErrorDeclareDate: 0 0/3 * * * ?
#推送地址
......@@ -40,3 +40,8 @@ api:
customs-url: https://apiuat.iclrccd-fedex.com/export/outbound/customs
#推送完整报文地址
complete-msg-url: https://apiuat.iclrccd-fedex.com/export/outbound/mawb
#http代理地址(刷新token、传输海关回执地址、推送完整报文地址)
# http://cn2-proxy.apac.fedex.com:3128
# http://internet.proxy.fedex.com:80
proxy-url: cn2-proxy.apac.fedex.com
proxy-port: 3128
......
......@@ -37,4 +37,9 @@ api:
#传输海关回执地址
customs-url: https://apictm.iclrccd-fedex.com/export/outbound/customs
#推送完整报文地址
complete-msg-url: https://apictm.iclrccd-fedex.com/export/outbound/mawb
\ No newline at end of file
complete-msg-url: https://apictm.iclrccd-fedex.com/export/outbound/mawb
#代理地址(刷新token、传输海关回执地址、推送完整报文地址)
# http://cn2-proxy.apac.fedex.com:3128
# http://internet.proxy.fedex.com
proxy-url: cn2-proxy.apac.fedex.com
proxy-port: 3128
......
......@@ -16,9 +16,9 @@ task:
#推送完整报文
pushMawbTask: 0 0/1 * * * ?
#推送失败的回执数据
pushErrorReturnDate: 0 0/30 * * * ?
pushErrorReturnDate: 0 0/3 * * * ?
#推送失败的申报数据
pushErrorDeclareDate: 0 0/30 * * * ?
pushErrorDeclareDate: 0 0/3 * * * ?
#推送地址
api:
......@@ -37,9 +37,15 @@ api:
iclear-check-url-c: ${api.base-address}/chmConsignmentController/checkChmAndDetaliC
#获取token地址
token-url: https://apiuat.iclrccd-fedex.com/login
# token-url: https://apictm.iclrccd-fedex.com/login
#刷新token地址
refresh-token-url: https://apiuat.iclrccd-fedex.com/user/token/refresh
#传输海关回执地址
customs-url: https://apiuat.iclrccd-fedex.com/export/outbound/customs
#推送完整报文地址
complete-msg-url: https://apiuat.iclrccd-fedex.com/export/outbound/mawb
#代理地址(刷新token、传输海关回执地址、推送完整报文地址)
# http://cn2-proxy.apac.fedex.com:3128
# http://internet.proxy.fedex.com
proxy-url: cn2-proxy.apac.fedex.com
proxy-port: 3128
......