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
李俊
2022-07-27 18:46:17 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
7777b5ba01d093344d382c96054b05248cd01810
7777b5ba
1 parent
092771b5
BASF校验接口
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
213 additions
and
9 deletions
sql/BASF校验接口.sql
src/main/java/com/erry/iclear/dateInterface/api/FedexDataInterface.java
src/main/java/com/erry/iclear/dateInterface/entity/TIClearApiCheckLog.java
src/main/java/com/erry/iclear/dateInterface/interceptor/SignInterceptor.java
src/main/java/com/erry/iclear/dateInterface/repository/IClearApiCheckLogRepository.java
src/main/java/com/erry/iclear/dateInterface/service/FedexService.java
src/main/resources/application-test.yml
sql/BASF校验接口.sql
0 → 100644
View file @
7777b5b
File mode changed
src/main/java/com/erry/iclear/dateInterface/api/FedexDataInterface.java
View file @
7777b5b
...
...
@@ -12,7 +12,9 @@ import com.erry.iclear.dateInterface.api.response.ResultRS;
import
com.erry.iclear.dateInterface.entity.ChmConsignment
;
import
com.erry.iclear.dateInterface.entity.DeclaredInfo
;
import
com.erry.iclear.dateInterface.entity.IClearApiLog
;
import
com.erry.iclear.dateInterface.entity.TIClearApiCheckLog
;
import
com.erry.iclear.dateInterface.repository.ChmConsignmentRepository
;
import
com.erry.iclear.dateInterface.repository.IClearApiCheckLogRepository
;
import
com.erry.iclear.dateInterface.service.*
;
import
com.erry.iclear.dateInterface.util.JsonToJava
;
import
com.erry.iclear.dateInterface.util.StringUtil
;
...
...
@@ -58,10 +60,73 @@ public class FedexDataInterface {
@Autowired
private
ChmConsignmentRepository
chmConsignmentRepository
;
@Autowired
private
IClearApiCheckLogRepository
iClearApiCheckLogRepository
;
@Value
(
"${api.address.iclear-submit-url}"
)
String
iclearCSubmitUrl
;
@ApiOperation
(
value
=
"BASF运单数据校验接口"
,
httpMethod
=
"POST"
,
notes
=
"ex: http://192.168.1.75:8080/fedex/checkBASFMawbFedex"
)
@PostMapping
(
"/checkBASFMawbFedex"
)
@ResponseBody
public
ResultRS
checkBASFMawbFedex
(
HttpServletRequest
request
,
@RequestBody
Fedexc
fedexc
)
throws
HttpProcessException
{
String
appId
=(
String
)
request
.
getHeader
(
"Appid"
);
String
appKey
=(
String
)
request
.
getHeader
(
"Appkey"
);
String
timeStamp
=(
String
)
request
.
getHeader
(
"TimeStamp"
);
String
token
=(
String
)
request
.
getHeader
(
"Token"
);
String
addr
=
request
.
getRemoteAddr
();
TIClearApiCheckLog
tIclearApiCheckLog
=
new
TIClearApiCheckLog
();
tIclearApiCheckLog
.
setRequestAppid
(
appId
);
tIclearApiCheckLog
.
setRequestAppkey
(
appKey
);
tIclearApiCheckLog
.
setRequestIp
(
addr
);
tIclearApiCheckLog
.
setRequestToken
(
token
);
tIclearApiCheckLog
.
setConsignmentCode
(
fedexc
.
getConsignmentCode
());
tIclearApiCheckLog
.
setCreateTime
(
new
Date
());
tIclearApiCheckLog
.
setRequestText
(
new
String
(
"appId:"
+
appId
+
","
+
"appKey:"
+
appKey
+
","
+
"timeStamp:"
+
timeStamp
+
","
+
"token:"
+
token
)
+
","
+
fedexc
.
toString
()
);
TIClearApiCheckLog
tiClearApiCheckLogSave
=
iClearApiCheckLogRepository
.
save
(
tIclearApiCheckLog
);
log
.
info
(
"checkBASFMawbFedex:"
+
fedexc
.
toString
());
log
.
info
(
"appId:{},appKey:{},timeStamp:{},token:{}"
,
appId
,
appKey
,
timeStamp
,
token
);
ResultRS
result
=
fedexService
.
checkBasfInterfaceData
(
fedexc
);
StopWatch
sw
=
new
StopWatch
(
"checkBASFMawbFedex"
);
sw
.
start
(
"generate FedexMawb"
);
fedexc
.
setAppId
(
appId
);
FedexMawb
saveMawbFedexResult
=
fedexService
.
generateFedexMawb
(
fedexc
);
sw
.
stop
();
sw
.
start
(
"checkFedexMawb"
);
String
msg
=
result
.
getMsg
();
String
iclearCheckMsg
=
fedexService
.
checkFedexMawb
(
saveMawbFedexResult
).
getMsg
();
result
.
setMsg
(
msg
+
";"
+
iclearCheckMsg
);
sw
.
stop
();
log
.
info
(
sw
.
prettyPrint
());
if
(
result
.
getSuccess
()){
result
.
setSuccess
(
Boolean
.
TRUE
);
result
.
setCode
(
"0"
);
}
tiClearApiCheckLogSave
.
setResponseText
(
result
.
getMsg
());
tiClearApiCheckLogSave
.
setCode
(
result
.
getCode
());
tiClearApiCheckLogSave
.
setSuccess
(
result
.
getSuccess
());
iClearApiCheckLogRepository
.
save
(
tiClearApiCheckLogSave
);
log
.
info
(
result
.
toString
());
return
result
;
}
@ApiOperation
(
value
=
"Fedex推送运单数据"
,
httpMethod
=
"POST"
,
notes
=
"ex: http://192.168.1.75:8080/fedex/sendMawbFedex"
)
@PostMapping
(
"/sendMawbFedex"
)
@ResponseBody
...
...
@@ -283,4 +348,5 @@ public class FedexDataInterface {
result
.
setCode
(
"0"
);
return
result
;
}
}
...
...
src/main/java/com/erry/iclear/dateInterface/entity/TIClearApiCheckLog.java
0 → 100644
View file @
7777b5b
package
com
.
erry
.
iclear
.
dateInterface
.
entity
;
import
com.erry.iclear.dateInterface.common.BaseModel
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.util.Date
;
/**
* BASF校验接口日志表
*/
@Entity
@Table
(
name
=
"T_ICLEAR_API_CHECK_LOG"
)
@Data
public
class
TIClearApiCheckLog
extends
BaseModel
{
@Id
@GeneratedValue
@Column
(
name
=
"ID"
)
private
Long
id
;
@Column
(
name
=
"request_appid"
)
private
String
requestAppid
;
@Column
(
name
=
"request_appkey"
)
private
String
requestAppkey
;
@Column
(
name
=
"request_token"
)
private
String
requestToken
;
@Column
(
name
=
"consignment_code"
)
private
String
consignmentCode
;
@Column
(
name
=
"request_text"
)
private
String
requestText
;
@Column
(
name
=
"response_text"
)
private
String
responseText
;
@Column
(
name
=
"request_ip"
)
private
String
requestIp
;
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
@Column
(
name
=
"success"
)
private
Boolean
success
;
@Column
(
name
=
"code"
)
private
String
code
;
}
src/main/java/com/erry/iclear/dateInterface/interceptor/SignInterceptor.java
View file @
7777b5b
src/main/java/com/erry/iclear/dateInterface/repository/IClearApiCheckLogRepository.java
0 → 100644
View file @
7777b5b
package
com
.
erry
.
iclear
.
dateInterface
.
repository
;
import
com.erry.iclear.dateInterface.entity.IClearApiLog
;
import
com.erry.iclear.dateInterface.entity.TIClearApiCheckLog
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author Administrator
*/
@DynamicUpdate
@DynamicInsert
@Repository
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
interface
IClearApiCheckLogRepository
extends
JpaRepository
<
TIClearApiCheckLog
,
Integer
>,
JpaSpecificationExecutor
<
TIClearApiCheckLog
>
{
}
src/main/java/com/erry/iclear/dateInterface/service/FedexService.java
View file @
7777b5b
...
...
@@ -11,15 +11,22 @@ import com.erry.iclear.dateInterface.entity.ChmConsignmentDetail;
import
com.erry.iclear.dateInterface.repository.FedexMawbRepository
;
import
com.erry.iclear.dateInterface.util.JsonToJava
;
import
com.google.gson.Gson
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.Header
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.persistence.*
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* @author Administrator
...
...
@@ -50,6 +57,16 @@ public class FedexService {
FedexMawb
result
=
null
;
try
{
log
.
info
(
"saveMawb start>>>>>>>>>>>"
);
FedexMawb
fedexMawb
=
this
.
generateFedexMawb
(
fedexc
);
result
=
fedexMawbRepository
.
save
(
fedexMawb
);
log
.
info
(
"saveMawb end>>>>>>>>>>>"
);
}
catch
(
Exception
e
){
log
.
error
(
"saveMawb() error:"
+
e
.
getMessage
());
}
return
result
;
}
public
FedexMawb
generateFedexMawb
(
Fedexc
fedexc
){
//运单头部信息
FedexMawb
fedexMawb
=
new
FedexMawb
();
fedexMawb
.
setAppId
(
fedexc
.
getAppId
());
...
...
@@ -75,7 +92,8 @@ public class FedexService {
fedexMawb
.
setEanNo
(
fedexc
.
getEanNo
());
//明细
List
<
FedexMawbDetail
>
mawbDetailList
=
new
ArrayList
<>();
if
(
fedexc
.
getConsignmentList
().
size
()>
0
){
List
<
FedexDetail
>
consignmentList
=
fedexc
.
getConsignmentList
();
if
(
Objects
.
nonNull
(
consignmentList
)
&&
consignmentList
.
size
()>
0
){
for
(
FedexDetail
fedexcDetail
:
fedexc
.
getConsignmentList
()){
FedexMawbDetail
mawbDetail
=
new
FedexMawbDetail
();
mawbDetail
.
setDetailId
(
String
.
valueOf
(
fedexcDetail
.
getConsignmentDetailId
()));
...
...
@@ -95,12 +113,8 @@ public class FedexService {
}
}
fedexMawb
.
setMawbDetailList
(
mawbDetailList
);
result
=
fedexMawbRepository
.
save
(
fedexMawb
);
log
.
info
(
"saveMawb end>>>>>>>>>>>"
);
}
catch
(
Exception
e
){
log
.
error
(
"saveMawb() error:"
+
e
.
getMessage
());
}
return
result
;
return
fedexMawb
;
}
/**
...
...
@@ -145,7 +159,56 @@ public class FedexService {
result
.
setMsg
(
iclearCheckResponseResult
.
getMessage
());
log
.
info
(
"<<<<<<<< checkMawb start >>>>>>>>>> mawb:"
+
gson
.
toJson
(
fedexMawb
)
+
" result :"
+
result
.
getSuccess
()
+
" iclear check response : "
+
json
+
" status : "
+
result
.
getSuccess
());
}
catch
(
Exception
e
){
log
.
error
(
"checkMawb() error:"
+
e
.
getMessage
());
log
.
error
(
"checkMawb() error:"
,
e
);
}
return
result
;
}
/**
* 校验BASF接口信息
* @param fedexc
* @return
*/
public
ResultRS
checkBasfInterfaceData
(
Fedexc
fedexc
){
ResultRS
result
=
new
ResultRS
(
Boolean
.
FALSE
,
""
,
""
);
if
(
Objects
.
equals
(
fedexc
,
null
)){
result
.
setCode
(
"-7"
);
result
.
setMsg
(
"请求信息不能为空"
);
}
else
{
List
<
String
>
msgList
=
new
ArrayList
<>();
// 参数consignmentCode不能为空
String
consignmentCode
=
fedexc
.
getConsignmentCode
();
if
(
StringUtils
.
isEmpty
(
consignmentCode
)){
msgList
.
add
(
"参数consignmentCode不能为空"
);
}
// 参数consignmentId不能为空
Long
consignmentId
=
fedexc
.
getConsignmentId
();
if
(
Objects
.
isNull
(
consignmentId
)){
msgList
.
add
(
"参数consignmentId不能为空"
);
}
// 参数consType不能为空
String
consType
=
fedexc
.
getConsType
();
if
(
StringUtils
.
isEmpty
(
consType
)){
msgList
.
add
(
"参数consType不能为空"
);
}
// 参数sender不能为空
String
sender
=
fedexc
.
getSender
();
if
(
StringUtils
.
isEmpty
(
sender
)){
msgList
.
add
(
"参数sender不能为空"
);
}
// 参数shipperSCC不能为空
String
shipperSCC
=
fedexc
.
getShipperSCC
();
if
(
StringUtils
.
isEmpty
(
shipperSCC
)){
msgList
.
add
(
"参数shipperSCC不能为空"
);
}
if
(
msgList
.
size
()
>
0
){
String
join
=
msgList
.
stream
().
collect
(
Collectors
.
joining
(
";"
));
result
.
setCode
(
"-7"
);
result
.
setMsg
(
join
);
}
}
return
result
;
}
...
...
src/main/resources/application-test.yml
View file @
7777b5b
spring
:
datasource
:
url
:
jdbc:sqlserver://40.73.78.157:1433;DatabaseName=IClear
Dev
url
:
jdbc:sqlserver://40.73.78.157:1433;DatabaseName=IClear
Uat
username
:
sa
password
:
Fedex_123
driver-class-name
:
com.microsoft.sqlserver.jdbc.SQLServerDriver
...
...
Please
register
or
login
to post a comment