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-07-06 11:42:19 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4de1c94d94f55921bdb21943221f267dae5363e4
4de1c94d
1 parent
83bc1293
提交代码
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
61 additions
and
1 deletions
doc/D类字段校验.txt
pom.xml
src/main/java/com/erry/iclear/dateInterface/entity/ChmConsignment.java
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentService.java
doc/D类字段校验.txt
0 → 100644
View file @
4de1c94
D类字段校验
明细:
1.商品明细必须有效,如果只是添加了商品明细,没有填写任何信息,系统会给出提示,不能保存也不能提交【必填项校验】
2.成交数量,成交单位,第一法定数量,原产地,总价,征免,币值,最终目的国,境内货源地必填;成交数量,申报金额,申报重量必须是数值类型。【数据类型校验】
3.品名必填且必须包含中文字符。【正则校验+逻辑校验】
申报要素中除'GNIT','CAS','其他'项外,其他必填
4.当每行的成交单位,法定计量单位如为千克,克,斤时,成交数量,法定计量数量转换为千克后和申报重量必须相同,否则就给予相关提示【逻辑校验】
5.运单明细法定数量部分,HS CODE自动带出有法定计量单位的部分需要强制填写法定数量,若有必填项未填写,点击“保存”或“提交”按钮时,系统会给出相应提示。
即如果货物信息带出的第一法定单位有值,则第一法定数量必填,第二法定单位为空,则第二法定数量必不填。带出的第二法定单位有值,则第二法定数量必填。
保存按钮:不论什么情况都可保存,必填字段未填会给出边框变红的提示。【必填项校验】
提交按钮:图片必须上传。未上传图片则无法成功提交。若必填字段未填写完整,则按照图像系统提交。
联系人,联系方式:必填,为空时,可保存不可提交【必填项校验】
清关图片上传:上传前必须填写运单号,联系人,联系方式
必填字段:
运单号,出境口岸,出境关别代码,生产核销单位海关编码,生产核销单位统一信用代码,生产核销单位,运输方式,监管方式,征免性质,成交方式,包装种类
,境内发货人统一信用代码,境内发货人海关编码,运单件数,毛重(公斤),净重(公斤),抵运国(地区),指运港,贸易国(地区),境外发货人名称(外文)
当成交方式为:CFR、CPT时,运费,运费币制必填,
当为CIF、CIP、DDP、DDU、DAP时,运费,运费币制,保费,保费币制必填,
当为C&I等时,保费,保费币制必填。为空时可保存。提交确认则按照图像系统提交
当为FOB、FCA、EXW时,没有运费,保费校验
\ No newline at end of file
pom.xml
View file @
4de1c94
src/main/java/com/erry/iclear/dateInterface/entity/ChmConsignment.java
View file @
4de1c94
...
...
@@ -51,6 +51,12 @@ public class ChmConsignment implements Serializable {
@Column
(
name
=
"DECLARED_UNIT_NAME"
)
private
String
declaredUnitName
;
/**
* 申报口岸
*/
@Column
(
name
=
"DECLARED_PORT"
)
private
String
declaredPort
;
/**
* 合同协议号
...
...
@@ -367,6 +373,18 @@ public class ChmConsignment implements Serializable {
@Column
(
name
=
"OWNER_CODE_SCC"
)
private
String
ownerCodeScc
;
/**
* 运单类型ID
*/
@Column
(
name
=
"CONS_TYPE_ID"
)
private
String
consTypeId
;
/**
* 运单类型
*/
@Column
(
name
=
"CONS_TYPE"
)
private
String
consType
;
@OneToMany
(
mappedBy
=
"chmConsignment"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
ChmConsignmentDetail
>
chmConsignmentDetailList
;
...
...
src/main/java/com/erry/iclear/dateInterface/service/ChmConsignmentService.java
View file @
4de1c94
...
...
@@ -153,7 +153,12 @@ public class ChmConsignmentService {
result
.
setFromCountry
(
fromCountryDictionaryEntries
.
getChineseName
());
}
//运单类型
DictionaryEntries
consType
=
Constant
.
dictionaryEntriesCache
.
get
(
Constant
.
MSG_TYPE_D
);
if
(
consType
!=
null
){
result
.
setConsTypeId
(
String
.
valueOf
(
consType
.
getId
()));
result
.
setConsType
(
consType
.
getChineseName
());
}
//监管方式
DictionaryEntries
tradeModeDictionaryEntries
=
Constant
.
dictionaryEntriesCache
.
get
(
Constant
.
SUPERVISION_MODE
+
mawb
.
getTradeMode
());
...
...
@@ -233,6 +238,11 @@ public class ChmConsignmentService {
result
.
setConsStatus
(
transferWaybillStatusDictionaryEntries
.
getChineseName
());
}
//西门子数据都为TSN口岸,可通过口岸查询查看
if
(
creator
.
equals
(
"IDE"
)){
result
.
setDeclaredPort
(
"TSN"
);
}
//推送时间作为创建时间,可以用来校验数据的有序性,如果新的推送时间小于已有的创建时间,就不更新数据
result
.
setCreateTime
(
new
Date
());
result
.
setUpdateTime
(
pushTime
);
...
...
@@ -345,6 +355,7 @@ public class ChmConsignmentService {
//条件1、状态为 待申报海关
//条件2、本次推送时间 > 上次推送的时间
}
else
if
(!
Objects
.
equals
(
chmConsignmentDB
,
null
)
//TODO 确定是不是transferWaybillStatus_5
&&
Objects
.
equals
(
chmConsignmentDB
.
getConsStatusDic
().
getCode
(),
"transferWaybillStatus_5"
)
//TODO 提交时需要打开
&&
pushTime
.
getTime
()>
chmConsignmentDB
.
getUpdateTime
().
getTime
()
...
...
@@ -362,6 +373,7 @@ public class ChmConsignmentService {
// }
// }
// }
//TODO 因为现在有了DetailId,所以可以根据DetailID进行更新,所以需要改为 update,去的掉detele的动作
List
<
Long
>
detailIdList
=
new
ArrayList
();
chmConsignmentDB
.
getChmConsignmentDetailList
().
forEach
(
detail
->{
detailIdList
.
add
(
detail
.
getId
());
...
...
@@ -371,6 +383,10 @@ public class ChmConsignmentService {
chmConsignmentDB
.
setChmConsignmentDetailList
(
null
);
}
chmConsignment
.
setId
(
chmConsignmentDB
.
getId
());
chmConsignment
.
setCreateTime
(
chmConsignmentDB
.
getCreateTime
());
chmConsignment
.
setUpdateTime
(
pushTime
);
...
...
Please
register
or
login
to post a comment