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
yi.wang
2021-09-16 15:11:07 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
75aba93352051826f4c59f29ffa7ba6ac5a4b500
75aba933
2 parents
eda097f6
7e50bf79
Merge remote-tracking branch 'origin/master'
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
236 additions
and
26 deletions
src/main/java/com/erry/iclear/dateInterface/api/BasfDataInterface.java
src/main/java/com/erry/iclear/dateInterface/api/request/BasfMawb.java
src/main/java/com/erry/iclear/dateInterface/api/request/BasfMawbDetail.java
src/main/java/com/erry/iclear/dateInterface/service/BasfService.java
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentDetailService.java
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentService.java
src/main/resources/application-dev.yml
src/main/resources/application-prod.yml
src/main/resources/application-test.yml
src/test/java/com/erry/iclear/dateInterface/ChmConsignmentServiceTest.java
src/main/java/com/erry/iclear/dateInterface/api/BasfDataInterface.java
View file @
75aba93
...
...
@@ -78,8 +78,8 @@ public class BasfDataInterface {
//2、TODO 校验主单
/*
sw.start("checkMawb");
result=
mawbService.checkMawb(mawb
);
/*
sw.start("checkMawb");
result=
basfService.checkBasfMawb(saveMawbBasfResult
);
if(!result.getSuccess()){
return result;
}
...
...
src/main/java/com/erry/iclear/dateInterface/api/request/BasfMawb.java
View file @
75aba93
...
...
@@ -153,7 +153,6 @@ public class BasfMawb implements Serializable {
private
String
ownerCode
;
@ApiModelProperty
(
value
=
"消费使用/生产销售单位名称"
,
name
=
"ownerName"
,
example
=
"上海保险"
)
@NotBlank
(
message
=
"参数ownerName不能为空"
,
groups
=
{
MawbAdd
.
class
})
@Column
(
name
=
"OWNERNAME"
)
private
String
ownerName
;
...
...
@@ -240,8 +239,8 @@ public class BasfMawb implements Serializable {
private
String
EANNo
;
@Valid
@ApiModelProperty
(
value
=
"运单明细"
,
name
=
"
mawbDetailList
"
,
example
=
""
)
@ApiModelProperty
(
value
=
"运单明细"
,
name
=
"
BasfMawbDetail
"
,
example
=
""
)
@OneToMany
(
cascade
=
CascadeType
.
PERSIST
)
@JoinColumn
(
name
=
"mawbId"
)
private
List
<
MawbDetail
>
mawbDetailList
;
private
List
<
Basf
MawbDetail
>
mawbDetailList
;
}
...
...
src/main/java/com/erry/iclear/dateInterface/api/request/BasfMawbDetail.java
View file @
75aba93
package
com
.
erry
.
iclear
.
dateInterface
.
api
.
request
;
public
class
BasfMawbDetail
{
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
@ApiModel
(
value
=
"mawbDetail"
,
description
=
"运单明细"
)
@Entity
@Table
(
name
=
"T_ICLEAR_API_MAWBDETAIL"
)
@Data
public
class
BasfMawbDetail
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6706944312498119267L
;
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"Id"
,
insertable
=
false
,
nullable
=
false
)
private
Long
id
;
@Column
(
name
=
"MSGID"
)
private
Long
msgId
;
@Column
(
name
=
"MAWBID"
)
private
Long
mawbId
;
@Column
(
name
=
"DETAILID"
)
private
String
detailId
;
@ApiModelProperty
(
value
=
"归类标志"
,
example
=
"空值"
)
@Column
(
name
=
"CLASSMARK"
)
private
String
classMark
;
@ApiModelProperty
(
value
=
"商品编号"
)
@Column
(
name
=
"CODETS"
)
private
String
codeTS
;
@ApiModelProperty
(
value
=
"申报单价"
,
example
=
"空值"
)
@Column
(
name
=
"DECLPRICE"
)
private
BigDecimal
declPrice
;
@ApiModelProperty
(
value
=
"申报总价"
)
@Column
(
name
=
"DECLTOTAL"
)
private
BigDecimal
declTotal
;
@ApiModelProperty
(
value
=
"征免方式"
)
@Column
(
name
=
"DUTYMODE"
)
private
String
dutyMode
;
@ApiModelProperty
(
value
=
"货号"
)
@Column
(
name
=
"EXGNO"
)
private
String
exgNo
;
@ApiModelProperty
(
value
=
"版本号"
)
@Column
(
name
=
"EXGVERSION"
)
private
String
exgVersion
;
@ApiModelProperty
(
value
=
"第一计量单位(法定单位)"
)
@Column
(
name
=
"FIRSTUNIT"
)
private
String
firstUnit
;
@ApiModelProperty
(
value
=
"第一法定数量"
)
@NotNull
(
message
=
"参数firstQty不能为空"
)
@Column
(
name
=
"FIRSTQTY"
)
private
Integer
firstQty
;
@ApiModelProperty
(
value
=
"成交计量单位"
)
@Column
(
name
=
"GUNIT"
)
private
String
gunit
;
@ApiModelProperty
(
value
=
"商品规格、型号"
)
@Column
(
name
=
"GMODE"
)
private
String
gmodel
;
@ApiModelProperty
(
value
=
"商品名称"
)
@Column
(
name
=
"GNAME"
)
private
String
gname
;
@ApiModelProperty
(
value
=
"商品序号"
)
@Column
(
name
=
"GNO"
)
private
String
gno
;
@ApiModelProperty
(
value
=
"成交数量"
)
@Column
(
name
=
"GQTY"
)
private
BigDecimal
gqty
;
@ApiModelProperty
(
value
=
"原产国"
)
@Column
(
name
=
"ORIGINCURRENTY"
)
private
String
originCountry
;
@ApiModelProperty
(
value
=
"第二计量单位"
)
@Column
(
name
=
"SECONDUNIT"
)
private
String
secondUnit
;
@ApiModelProperty
(
value
=
"第二法定数量"
)
@Column
(
name
=
"SECONDQTY"
)
private
Integer
secondQty
;
@ApiModelProperty
(
value
=
"成交币制"
)
@Column
(
name
=
"TRADECURR"
)
private
String
tradeCurr
;
@ApiModelProperty
(
value
=
"用途/生产厂家"
)
@Column
(
name
=
"USETO"
)
private
String
useTo
;
@ApiModelProperty
(
value
=
"工缴费"
)
@Column
(
name
=
"WORKUSD"
)
private
BigDecimal
workUsd
;
@ApiModelProperty
(
value
=
"检验检疫编"
)
@Column
(
name
=
"CIQCODE"
)
private
String
ciqCode
;
@ApiModelProperty
(
value
=
"最终目的国(地区)"
)
@Column
(
name
=
"DESTINATIONCOUNTRY"
)
private
String
destinationCountry
;
@ApiModelProperty
(
value
=
"申报货物英文名称"
)
@Column
(
name
=
"DECLGOODSENAME"
)
private
String
declGoodsEname
;
@ApiModelProperty
(
value
=
"目的地代码"
)
@Column
(
name
=
"DESTCODE"
)
private
String
destCode
;
@ApiModelProperty
(
value
=
"境内目的地/境内货源地"
)
@Column
(
name
=
"DISTRICTCODE"
)
private
String
districtCode
;
@ApiModelProperty
(
value
=
"申报重量"
)
@Column
(
name
=
"DECLAREDWEIGHT"
)
private
BigDecimal
declaredWeight
;
}
...
...
src/main/java/com/erry/iclear/dateInterface/service/BasfService.java
View file @
75aba93
package
com
.
erry
.
iclear
.
dateInterface
.
service
;
import
com.arronlong.httpclientutil.HttpClientUtil
;
import
com.arronlong.httpclientutil.common.HttpConfig
;
import
com.arronlong.httpclientutil.common.HttpHeader
;
import
com.erry.iclear.dateInterface.api.request.*
;
import
com.erry.iclear.dateInterface.api.response.IClearCheckResponseResult
;
import
com.erry.iclear.dateInterface.api.response.ResultRS
;
import
com.erry.iclear.dateInterface.entity.ChmConsignment
;
import
com.erry.iclear.dateInterface.entity.ChmConsignmentDetail
;
import
com.erry.iclear.dateInterface.repository.BasfMawbRepository
;
import
com.erry.iclear.dateInterface.repository.MawbRepository
;
import
com.erry.iclear.dateInterface.util.JsonToJava
;
import
com.erry.iclear.dateInterface.util.NumberUtils
;
import
com.google.gson.Gson
;
import
lombok.extern.slf4j.Slf4j
;
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
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author Administrator
...
...
@@ -16,6 +29,18 @@ import java.util.List;
@Service
@Slf4j
public
class
BasfService
{
private
Gson
gson
=
new
Gson
();
@Value
(
"${api.address.iclear-check-url-c}"
)
String
iclearCheckUrl
;
@Autowired
private
ChmConsignmentService
consignmentService
;
@Autowired
private
ChmConsignmentDetailService
consignmentDetailService
;
@Autowired
private
BasfMawbRepository
basfMawbRepository
;
...
...
@@ -51,10 +76,10 @@ public class BasfService {
basfMawb
.
setEANNo
(
basfc
.
getEANNo
());
//明细
List
<
MawbDetail
>
mawbDetailList
=
new
ArrayList
<>();
List
<
Basf
MawbDetail
>
mawbDetailList
=
new
ArrayList
<>();
if
(
basfc
.
getBasfcDetailList
().
size
()>
0
){
for
(
BasfcDetail
basfcDetail
:
basfc
.
getBasfcDetailList
()){
MawbDetail
mawbDetail
=
new
MawbDetail
();
BasfMawbDetail
mawbDetail
=
new
Basf
MawbDetail
();
mawbDetail
.
setDetailId
(
basfcDetail
.
getConsignmentDetailId
());
mawbDetail
.
setGmodel
(
basfcDetail
.
getModel
());
mawbDetail
.
setCodeTS
(
basfcDetail
.
getSkuCode
());
...
...
@@ -79,4 +104,50 @@ public class BasfService {
}
return
result
;
}
/**
* 校验主单
* @param basfMawb
* @return
*/
public
ResultRS
checkBasfMawb
(
BasfMawb
basfMawb
){
ResultRS
result
=
new
ResultRS
(
Boolean
.
FALSE
,
null
,
null
);
try
{
log
.
info
(
"checkMawb start>>>>>>>>>> mawb:"
+
gson
.
toJson
(
basfMawb
));
//1、将请求转换为运单
ChmConsignment
chmConsignment
=
consignmentService
.
convertToChmConsignmentBasf
(
basfMawb
,
null
,
"IDE-ICLEAR-API"
);
if
(
Objects
.
equals
(
chmConsignment
,
null
)){
result
.
setCode
(
"30001"
);
result
.
setMsg
(
"数据格式不正确"
);
return
result
;
}
List
<
ChmConsignmentDetail
>
chmConsignmentDetailList
=
new
ArrayList
<>();
basfMawb
.
getMawbDetailList
().
forEach
(
detail
->{
chmConsignmentDetailList
.
add
(
consignmentDetailService
.
convertToChmConsignmentDetailBasf
(
detail
,
chmConsignment
));
});
chmConsignment
.
setChmConsignmentDetailList
(
chmConsignmentDetailList
);
//调用IClear接口进行运单数据校验
String
objJson
=
JsonToJava
.
toJson
(
chmConsignment
);
Header
[]
headers
=
HttpHeader
.
custom
()
.
other
(
"Content-Type"
,
"application/json"
)
.
build
();
log
.
info
(
"******************* : "
+
this
.
iclearCheckUrl
);
//推送海关回执数据
HttpConfig
config
=
HttpConfig
.
custom
()
.
headers
(
headers
)
.
url
(
this
.
iclearCheckUrl
)
.
encoding
(
"utf-8"
)
.
json
(
objJson
);
String
json
=
HttpClientUtil
.
post
(
config
);
IClearCheckResponseResult
iclearCheckResponseResult
=
JsonToJava
.
parseJson
(
json
,
IClearCheckResponseResult
.
class
);
result
.
setSuccess
(
iclearCheckResponseResult
.
getSuccess
());
result
.
setMsg
(
iclearCheckResponseResult
.
getMessage
());
log
.
info
(
"<<<<<<<< checkMawb start >>>>>>>>>> mawb:"
+
gson
.
toJson
(
basfMawb
)
+
" result :"
+
result
.
getSuccess
()
+
" iclear check response : "
+
json
+
" status : "
+
result
.
getSuccess
());
}
catch
(
Exception
e
){
log
.
error
(
"checkMawb() error:"
+
e
.
getMessage
());
}
return
result
;
}
}
...
...
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentDetailService.java
View file @
75aba93
package
com
.
erry
.
iclear
.
dateInterface
.
service
;
import
com.erry.iclear.dateInterface.api.request.BasfMawbDetail
;
import
com.erry.iclear.dateInterface.api.request.MawbDetail
;
import
com.erry.iclear.dateInterface.common.Constant
;
import
com.erry.iclear.dateInterface.entity.*
;
...
...
@@ -137,7 +138,7 @@ public class ChmConsignmentDetailService {
* @param mawbDetail
* @return
*/
public
ChmConsignmentDetail
convertToChmConsignmentDetailBasf
(
MawbDetail
mawbDetail
,
ChmConsignment
chmConsignment
){
public
ChmConsignmentDetail
convertToChmConsignmentDetailBasf
(
BasfMawbDetail
mawbDetail
,
ChmConsignment
chmConsignment
){
ChmConsignmentDetail
result
=
new
ChmConsignmentDetail
();
try
{
result
.
setChmConsignment
(
chmConsignment
);
...
...
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentService.java
View file @
75aba93
...
...
@@ -15,8 +15,6 @@ import com.erry.iclear.dateInterface.util.DateUtils;
import
com.erry.iclear.dateInterface.util.NumberUtils
;
import
com.erry.iclear.dateInterface.util.StringUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -550,7 +548,7 @@ public class ChmConsignmentService {
/**
* 保存或更新 iclear中的运单信息
* @param
m
awb
* @param
basfM
awb
* @param timeStamp
*/
public
ResultRS
processChmConsignmentBasf
(
BasfMawb
basfMawb
,
String
timeStamp
,
String
creator
)
{
...
...
src/main/resources/application-dev.yml
View file @
75aba93
...
...
@@ -28,7 +28,7 @@ api:
#IClear校验运单地址
iclear-check-url
:
http://40.73.78.157:8081/chmConsignmentController/checkChmAndDetaliD
#IClear校验C类运单地址
iclear-check-url-c
:
http://40.73.78.157:808
1
/chmConsignmentController/checkChmAndDetaliC
iclear-check-url-c
:
http://40.73.78.157:808
0
/chmConsignmentController/checkChmAndDetaliC
#获取token地址
token-url
:
https://apiuat.iclrccd-fedex.com/login
#刷新token地址
...
...
src/main/resources/application-prod.yml
View file @
75aba93
...
...
@@ -26,6 +26,8 @@ api:
address
:
#IClear校验运单地址
iclear-check-url
:
https://www.iclrccd-fedex.com/chmConsignmentController/checkChmAndDetaliD
#IClear校验C类运单地址
iclear-check-url-c
:
http://40.73.78.157:8080/chmConsignmentController/checkChmAndDetaliC
#获取token地址
token-url
:
https://api.iclrccd-fedex.com/export/login
#刷新token地址
...
...
src/main/resources/application-test.yml
View file @
75aba93
...
...
@@ -26,6 +26,8 @@ api:
address
:
#IClear校验运单地址
iclear-check-url
:
http://40.73.78.157:8081/chmConsignmentController/checkChmAndDetaliD
#IClear校验C类运单地址
iclear-check-url-c
:
http://40.73.78.157:8080/chmConsignmentController/checkChmAndDetaliC
#获取token地址
token-url
:
https://apiuat.iclrccd-fedex.com/login
#刷新token地址
...
...
src/test/java/com/erry/iclear/dateInterface/ChmConsignmentServiceTest.java
View file @
75aba93
...
...
@@ -3,13 +3,10 @@ package com.erry.iclear.dateInterface;
import
com.erry.iclear.dateInterface.api.CustomsDataInterface
;
import
com.erry.iclear.dateInterface.api.request.*
;
import
com.erry.iclear.dateInterface.api.response.ResultRS
;
import
com.erry.iclear.dateInterface.repository.MawbAdd
;
import
com.erry.iclear.dateInterface.service.BasfService
;
import
com.erry.iclear.dateInterface.service.ChmConsignmentService
;
import
com.erry.iclear.dateInterface.service.MawbService
;
import
org.junit.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
...
...
@@ -26,7 +23,7 @@ public class ChmConsignmentServiceTest extends IClearApiApplicationTests {
private
CustomsDataInterface
customsDataInterface
;
@Autowired
private
BasfService
mawb
Service
;
private
BasfService
basf
Service
;
/*@Test
...
...
@@ -44,24 +41,30 @@ public class ChmConsignmentServiceTest extends IClearApiApplicationTests {
@Test
public
void
testProcessChmConsignment1
(){
try
{
ResultRS
result
=
new
ResultRS
(
Boolean
.
FALSE
,
""
,
""
);
Basfc
basfc
=
this
.
createNewBasf
();
BasfMawb
mawb
=
mawb
Service
.
saveMawbBasf
(
basfc
);
BasfMawb
mawb
=
basf
Service
.
saveMawbBasf
(
basfc
);
//Basfc basfc = this.createNewBasf();
String
timeStamp
=
String
.
valueOf
(
new
Date
().
getTime
());
ResultRS
resultRS
=
chmConsignmentService
.
processChmConsignmentBasf
(
mawb
,
timeStamp
,
"BASF"
);
/*result=basfService.checkBasfMawb(mawb);
if(!result.getSuccess()){
System.out.println(result.getMsg());
}*/
System
.
out
.
println
(
resultRS
.
toString
());
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
System
.
out
.
println
(
"1"
);
}
private
Basfc
createNewBasf
(){
List
<
BasfcDetail
>
basfcDetailList
=
new
ArrayList
<>();
BasfcDetail
basfcDetail
=
new
BasfcDetail
();
basfcDetail
.
setConsignmentDetailId
(
"
111
"
);
basfcDetail
.
setSkuCode
(
"
123456789
"
);
basfcDetail
.
setSkuName
(
"测试"
);
basfcDetail
.
setModel
(
"0|0|1|||||||||"
);
basfcDetail
.
setConsignmentDetailId
(
"
222
"
);
basfcDetail
.
setSkuCode
(
"
29262000
"
);
basfcDetail
.
setSkuName
(
"
210908001
测试"
);
basfcDetail
.
setModel
(
"0|0|1|
1
||||||||"
);
basfcDetail
.
setUnitLegalFirst
(
"035"
);
basfcDetail
.
setQtyLegalFirst
(
BigDecimal
.
valueOf
(
1
));
basfcDetail
.
setKnockdownUnit
(
"035"
);
...
...
@@ -74,13 +77,13 @@ public class ChmConsignmentServiceTest extends IClearApiApplicationTests {
basfcDetailList
.
add
(
basfcDetail
);
Basfc
basfc
=
new
Basfc
();
basfc
.
setConsignmentCode
(
"21
1015003
"
);
basfc
.
setConsignmentCode
(
"21
0908002
"
);
basfc
.
setConsignmentId
(
1L
);
basfc
.
setConsType
(
"C"
);
basfc
.
setSender
(
"
发件人
"
);
basfc
.
setShipperCustomsCode
(
"1
234567890
"
);
basfc
.
setSender
(
"
天津知行博创科技有限公司
"
);
basfc
.
setShipperCustomsCode
(
"1
1119608L9
"
);
basfc
.
setShipperSCC
(
"123456789012345678"
);
basfc
.
setOperateUnitName
(
""
);
basfc
.
setOperateUnitName
(
"
天津丰铭佳业科贸有限公司
"
);
basfc
.
setOperateUnitCode
(
""
);
basfc
.
setOperateSCC
(
""
);
basfc
.
setEANNo
(
""
);
...
...
Please
register
or
login
to post a comment