Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
iClear-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
wei.zhou
2021-06-28 14:09:24 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
894d00165208542e91c57fa022b1629c60671aee
894d0016
1 parent
ef637d64
提交代码
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
52 additions
and
88 deletions
doc/建表语句.sql
src/main/java/com/erry/iclear/dateInterface/api/CustomsDataInterface.java
src/main/java/com/erry/iclear/dateInterface/controller/IClearExportInterface.java
src/main/java/com/erry/iclear/dateInterface/entity/IClearApiLog.java
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentService.java
src/main/java/com/erry/iclear/dateInterface/service/IClearApiLogService.java
src/test/java/com/erry/iclear/dateInterface/HttpClientTest.java
doc/建表语句.sql
View file @
894d001
...
...
@@ -28,18 +28,17 @@ INSERT INTO T_ICLEAR_API_APPINFO VALUES(1,'IDE','iClearExport','b92131f03f19a348
CREATE
TABLE
T_ICLEAR_API_LOG
(
MSGID
int
identity
(
1
,
1
)
primary
key
--PK
MSGID
int
identity
(
1
,
1
)
primary
key
--PK
,
MSG_TYPE
VARCHAR
(
20
)
--类型: C D
,
APPID
VARCHAR
(
20
)
--用户ID
,
APPKEY
VARCHAR
(
20
)
--用户key
,
CREATE_TIME
datetime
--创建时间
,
UPDATE_TIME
datetime
--更新时间
,
PUSH_TIME
datetime
--消息推送时间
--,REQUEST_MSG VARCHAR(500)
,
RECEIVE_RESULT
VARCHAR
(
100
)
--记录接收后是否验证通过的结果
,
ERROR_CODE
VARCHAR
(
10
)
--错误代码
,
RESPONSE_TIME
datetime
-- 响应时间
,
SPEND_TIME
numeric
(
5
,
0
)
--消耗时间(ms)
,
SENDTIMES
datetime
--更新次数
,
SENDTIMES
int
--更新次数
,
BILLNO
VARCHAR
(
20
)
--运单号
,
CONTRNO
VARCHAR
(
20
)
--合同号
)
...
...
src/main/java/com/erry/iclear/dateInterface/api/CustomsDataInterface.java
View file @
894d001
...
...
@@ -64,7 +64,7 @@ public class CustomsDataInterface {
String
appId
=(
String
)
request
.
getHeader
(
"Appid"
);
String
appKey
=(
String
)
request
.
getHeader
(
"Appkey"
);
String
timeStamp
=(
String
)
request
.
getHeader
(
"TimeStamp"
);
IClearApiLog
saveIClearApiLogResult
=
iClearApiLogService
.
saveIClearApiLog
(
iClearApiLogService
.
convertToIClearApiLog
(
mawb
,
appId
,
appKey
,
DateUtils
.
convertToDate
(
timeStamp
)));
IClearApiLog
saveIClearApiLogResult
=
iClearApiLogService
.
saveIClearApiLog
(
iClearApiLogService
.
convertToIClearApiLog
(
mawb
,
appId
,
appKey
,
new
Date
(
Long
.
valueOf
(
timeStamp
)
)));
if
(!
Objects
.
equals
(
saveIClearApiLogResult
,
null
)){
...
...
@@ -124,6 +124,7 @@ public class CustomsDataInterface {
sw
.
start
(
"updateIClearApiLog"
);
if
(!
Objects
.
equals
(
saveIClearApiLogResult
,
null
)){
saveIClearApiLogResult
.
setReceiveResult
(
result
.
getSuccess
().
toString
());
saveIClearApiLogResult
.
setErrorCode
(
result
.
getCode
());
saveIClearApiLogResult
.
setResponseTime
(
new
Date
());
saveIClearApiLogResult
.
setSpendTime
(
sw
.
getTotalTimeMillis
());
...
...
src/main/java/com/erry/iclear/dateInterface/controller/IClearExportInterface.java
View file @
894d001
...
...
@@ -40,4 +40,19 @@ public class IClearExportInterface {
return
"Faile"
;
}
//TODO 根据已记录的MAWB生成 运单数据,用户处理解析失败时的策略
@ApiOperation
(
value
=
"重新生成运单"
,
httpMethod
=
"GET"
,
notes
=
"ex: http://192.168.1.75:8080/system/refreshSendMawbe"
)
@GetMapping
(
"/refreshSendMawbe"
)
public
String
refreshSendMawbe
()
{
try
{
return
"Success"
;
}
catch
(
Exception
e
){
log
.
error
(
"refreshCache() error:"
+
e
.
getMessage
());
}
return
"Faile"
;
}
}
...
...
src/main/java/com/erry/iclear/dateInterface/entity/IClearApiLog.java
View file @
894d001
...
...
@@ -32,18 +32,15 @@ public class IClearApiLog implements Serializable {
@Column
(
name
=
"CREATE_TIME"
)
private
Date
createTime
;
@Column
(
name
=
"UPDATE_TIME"
)
private
Date
updateTime
;
//收到的json,用 T_ICLEAR_API_MAWB表保存
//@Column(name= "REQUEST_MSG")
//private String request_msg;
@Column
(
name
=
"PUSH_TIME"
)
private
Date
pushTime
;
@Column
(
name
=
"RECEIVE_RESULT"
)
private
String
receiveResult
;
@Column
(
name
=
"ERROR_CODE"
)
private
String
errorCode
;
@Column
(
name
=
"RESPONSE_TIME"
)
private
Date
responseTime
;
...
...
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentService.java
View file @
894d001
...
...
@@ -277,6 +277,9 @@ public class ChmConsignmentService {
log
.
info
(
"主单"
+
mawb
.
getBillNo
()+
" 保存成功,chmConsignmentId:"
+
chmConsignmentSaveResult
.
getId
());
}
else
{
log
.
info
(
"主单"
+
mawb
.
getBillNo
()+
" 保存失败"
);
result
.
setCode
(
"30002"
);
result
.
setMsg
(
"主单"
+
mawb
.
getBillNo
()+
" 保存失败"
);
return
result
;
}
//更新:
//如果有数据并且满足条件后才能更新数据
...
...
@@ -317,13 +320,16 @@ public class ChmConsignmentService {
log
.
info
(
"主单"
+
mawb
.
getBillNo
()+
" 更新成功,chmConsignmentId:"
+
updateResult
.
getId
());
}
else
{
log
.
info
(
"主单"
+
mawb
.
getBillNo
()+
" 更新失败"
);
result
.
setCode
(
"30003"
);
result
.
setMsg
(
"主单"
+
mawb
.
getBillNo
()+
" 更新失败"
);
return
result
;
}
}
}
catch
(
Exception
e
){
log
.
error
(
""
+
e
.
getMessage
());
}
result
.
setSuccess
(
Boolean
.
TRUE
);
return
result
;
}
...
...
src/main/java/com/erry/iclear/dateInterface/service/IClearApiLogService.java
View file @
894d001
...
...
@@ -45,7 +45,6 @@ public class IClearApiLogService {
result
.
setAppId
(
appId
);
result
.
setAppKey
(
appKey
);
result
.
setCreateTime
(
new
Date
());
result
.
setUpdateTime
(
new
Date
());
result
.
setPushTime
(
pushTime
);
result
.
setReceiveResult
(
null
);
result
.
setResponseTime
(
null
);
...
...
src/test/java/com/erry/iclear/dateInterface/HttpClientTest.java
View file @
894d001
...
...
@@ -13,6 +13,7 @@ import com.erry.iclear.dateInterface.util.SHA256Util;
import
com.google.gson.Gson
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.Header
;
import
java.io.FileNotFoundException
;
import
java.math.BigDecimal
;
import
java.util.*
;
...
...
@@ -22,14 +23,13 @@ public class HttpClientTest {
// System.out.println(HttpClientUtil.get(HttpConfig.custom().url("https://40.73.78.157:8780/system/healthCheck")));
// System.out.println(HttpClientUtil.post(HttpConfig.custom().url("https://40.73.78.157:8780/customs/sendMawb")));
String
timeStamp
=
"1623920478192"
;
//
String timeStamp = "1624263798669";
//
String timeStamp = "1623920478192";
String
timeStamp
=
"1624263798669"
;
System
.
out
.
println
(
new
Date
(
Long
.
valueOf
(
timeStamp
)));
String
token
=
SHA256Util
.
getSHA256String
(
"IDE"
+
"iClearExport"
+
"b92131f03f19a348"
+
timeStamp
);
String
token
=
SHA256Util
.
getSHA256String
(
"IDE"
+
"iClearExport"
+
"b92131f03f19a348"
+
timeStamp
);
System
.
out
.
println
(
token
);
Header
[]
headers
=
HttpHeader
.
custom
()
.
other
(
"Content-Type"
,
"application/json"
)
.
other
(
"Appid"
,
"IDE"
)
...
...
@@ -38,68 +38,26 @@ public class HttpClientTest {
.
other
(
"token"
,
token
)
.
build
();
//插件式配置生成HttpClient时所需参数(超时、连接池、ssl、重试)
HCB
hcb
=
HCB
.
custom
()
.
timeout
(
3000
)
//超时
.
pool
(
100
,
10
)
//启用连接池,每个路由最大创建10个链接,总连接数限制为100个
.
sslpv
(
SSLs
.
SSLProtocolVersion
.
TLSv1_2
)
//设置ssl版本号,默认SSLv3,也可以调用sslpv("TLSv1.2")
.
ssl
()
//https,支持自定义ssl证书路径和密码,ssl(String keyStorePath, String keyStorepass)
.
retry
(
5
)
//重试5次
;
HttpClient
client
=
hcb
.
build
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"mawb"
,
createMawb
());
//map.put("key2", "value2");
Mawb
mawb
=
createMawb
();
Gson
gson
=
new
Gson
();
String
request
=
gson
.
toJson
(
mawb
);
//插件式配置请求参数(网址、请求参数、编码、client)
String
url
=
"https://40.73.78.157:8780/customs/sendMawb"
;
.
timeout
(
3000
)
.
pool
(
100
,
10
)
.
sslpv
(
SSLs
.
SSLProtocolVersion
.
TLSv1_2
)
.
ssl
()
.
retry
(
5
);
// String url = "https://40.73.78.157:8780/customs/sendMawb";
String
url
=
"https://192.168.1.75:8780/customs/sendMawb"
;
HttpConfig
config
=
HttpConfig
.
custom
()
.
headers
(
headers
)
//设置headers,不需要时则无需设置
.
url
(
url
)
//设置请求的url
//.map(map) //设置请求参数,没有则无需设置
.
encoding
(
"utf-8"
)
//设置请求和返回编码,默认就是Charset.defaultCharset()
.
client
(
client
)
//如果只是简单使用,无需设置,会自动获取默认的一个client对象
//.inenc("utf-8") //设置请求编码,如果请求返回一直,不需要再单独设置
//.inenc("utf-8") //设置返回编码,如果请求返回一直,不需要再单独设置
.
json
(
request
)
//json方式请求的话,就不用设置map方法,当然二者可以共用。
//.context(HttpCookies.custom().getContext()) //设置cookie,用于完成携带cookie的操作
//.out(new FileOutputStream("保存地址")) //下载的话,设置这个方法,否则不要设置
//.files(new String[]{"d:/1.txt","d:/2.txt"}) //上传的话,传递文件路径,一般还需map配置,设置服务器保存路径
;
//使用方式:
//System.out.println(HttpClientUtil.get(config));
.
headers
(
headers
)
.
url
(
url
)
.
encoding
(
"utf-8"
)
.
client
(
hcb
.
build
())
.
json
(
new
Gson
().
toJson
(
createMawb
()));
System
.
out
.
println
(
HttpClientUtil
.
post
(
config
));
//HttpClientUtil.down(config); //下载,需要调用config.out(fileOutputStream对象)
//HttpClientUtil.upload(config); //上传,需要调用config.files(文件路径数组)
//如果指向看是否访问正常
//String result3 = HttpClientUtil.head(config); // 返回Http协议号+状态码
//int statusCode = HttpClientUtil.status(config);//返回状态码
//[新增方法]sendAndGetResp,可以返回原生的HttpResponse对象,
//同时返回常用的几类对象:result、header、StatusLine、StatusCode
// HttpResult respResult = HttpClientUtil.sendAndGetResp(config);
// System.out.println("返回结果:\n"+respResult.getResult());
// System.out.println("返回resp-header:"+respResult.getRespHeaders());//可以遍历
// System.out.println("返回具体resp-header:"+respResult.getHeaders("Date"));
// System.out.println("返回StatusLine对象:"+respResult.getStatusLine());
// System.out.println("返回StatusCode:"+respResult.getStatusCode());
// System.out.println("返回HttpResponse对象)(可自行处理):"+respResult.getResp());
}
public
static
Mawb
createMawb
(){
public
static
Mawb
createMawb
()
{
MawbDetail
d1
=
new
MawbDetail
();
d1
.
setClassMark
(
""
);
...
...
@@ -113,9 +71,9 @@ public class HttpClientTest {
d1
.
setFirstQty
(
11
);
d1
.
setGunit
(
"007"
);
d1
.
setGmodel
(
"商品规格、型号"
);
d1
.
setGname
(
"餐桌"
);
d1
.
setGname
(
"餐桌
2
"
);
d1
.
setGno
(
"1"
);
d1
.
setGqty
(
BigDecimal
.
valueOf
(
1.88
));
d1
.
setGqty
(
BigDecimal
.
valueOf
(
1
5
.88
));
d1
.
setOriginCountry
(
"US"
);
d1
.
setSecondUnit
(
"007"
);
d1
.
setSecondQty
(
2
);
...
...
@@ -141,9 +99,9 @@ public class HttpClientTest {
d2
.
setFirstQty
(
11
);
d2
.
setGunit
(
"007"
);
d2
.
setGmodel
(
"商品规格、型号"
);
d2
.
setGname
(
"餐桌"
);
d2
.
setGname
(
"餐桌
3
"
);
d2
.
setGno
(
"2"
);
d2
.
setGqty
(
BigDecimal
.
valueOf
(
2
2.88
));
d2
.
setGqty
(
BigDecimal
.
valueOf
(
4
2.88
));
d2
.
setOriginCountry
(
"US"
);
d2
.
setSecondUnit
(
"007"
);
d2
.
setSecondQty
(
3
);
...
...
@@ -157,14 +115,11 @@ public class HttpClientTest {
d2
.
setDistrictCode
(
"4408W"
);
List
<
MawbDetail
>
mawbDetailList
=
new
ArrayList
<
MawbDetail
>();
mawbDetailList
.
add
(
d1
);
mawbDetailList
.
add
(
d2
);
Mawb
mawb
=
new
Mawb
();
mawb
.
setIEFlag
(
"E"
);
mawb
.
setType
(
"EX"
);
...
...
@@ -219,12 +174,4 @@ public class HttpClientTest {
}
}
...
...
Please
register
or
login
to post a comment