CopyRight 2009-2020 © All Rights Reserved.版权所有: 中国海关未经授权禁止复制或建立镜像
进口铜精矿属性编码技术方案研究
作者:唐 晨1 戴东情1 朱立平2 姜 莉3 易 欣2 封亚辉1* 王庆生3
唐 晨1 戴东情1 朱立平2 姜 莉3 易 欣2 封亚辉1* 王庆生3
A Study on Attribute Coding Technique of Import Copper Concentrate
TANG Chen1 DAI Dong-Qing1 ZHU Li-Ping2
JIANG Li3 YI Xin2 FENG Ya-Hui1* WANG Qing-Sheng3
Abstract Import and export commodities have a lot of information that may be distributed in trade and various systems. In order to collect these information, GS1 standards were adopted to formulate the coding criteria which will help to standardize data collection, output, transmission and sharing. In this study, 85 attribute items based on copper concentrate were summarized, and the technical specifications for the transformation rules of value and its code were formulated. A simple encoding and decoding system for copper was built, which can rapidly and accurately translate attribute values and codes.
Keywords copper concentrate; commodity attribute; encode; decode
进出口商品的安全准入、税收征管、统计、防止欺诈、质量和技术管理是海关有效监控的基本目标,但长期以来受制于传统商品管理模式的信息传递方式、技术手段、各方合作方式等因素的影响,海关商品识别这一基础性工作仍然存在较大提升空间。传统海关商品管理方式和作业模式面对复杂进出口形势和多变的进出口商品,受制于数据不全、申报内容不标准的原因,难于快速准确获取商品属性[1]。
进口商品属性数据来源广泛,分散在进出口贸易各环节中,货物报关时需要汇总收集并申报的参数属性多达105条[2],其中,一些参数在申报系统中有固定的输入形式,如仅限在选项列表中选择,而另外一些参数则没有严格的填报要求,以自由文本形式填报,属于非结构化、非标准化数据,需要对此类数据进行清洗、筛选,直接影响数据研判及统计分析。此外,还有很多参数属性不需要在申报系统中填报,但是在实际监管、检验、稽查、核查、计税等环节中至关重要,通常以纸质文件形式提交监管部门,如计价过程中用到的支付率、国际金属价格等,加大了数据真实性鉴别难度。
在数据填报或提交时,有些参数属性的值没有限定计量单位,数值单位的随意选择性较大。由于单位的不统一,存入数据库该字段下的值会有较大的倍数关系,尤其是人工存储数据时忽视数值的倍数关系,会给数据汇总分析带来一定困难或是重大错误。例如:进口铜精矿有害元素限量要求中,铅、砷、氟、镉、汞的限量值均以质量百分比(%)表示[3],但实验室出具的检测报告中有的元素结果习惯以µg/g作为单位,若在数据收集时未考虑到单位的统一,两者数值上会存在10000倍的倍率关系。
基于国际物品编码GS1通用规范和GB/T 370004-2018《国家物品编码通用导则》[4]中的GTIN(全球贸易项目编码),已经为产品和服务的买卖、运输、仓储等过程中提供了唯一标识,通过编码可以准确、稳定地获取产品和服务信息,但仍无法满足海关对进出口商品特殊信息的需求。
本研究以进口铜精矿为对象,参考GS1规范导则,针对海关在进出口贸易监管过程中的信息需求,探索进出口商品属性编码技术,规范商品属性数据采集,统一属性及其值的表现形式,建立新的信息共享和数据传输交换机制,促进商品数据结构化、标准化、透明化,为海关商品风险防控和智能化管理提供技术指导。
1 编码技术方案
1.1 属性条目制定
本研究通过对进口铜精矿属性及其值进行归类整合,目前共列出85条属性条目(item),每个item包含属性条目名称(name)、属性标识符(identifier)、属性标准计量单位(unit)、属性值编码类型(type)以及属性类别(class)。属性条目名称、属性标识符(码)作为属性的唯一性标识,无重复。另外,严格规定属性标准计量单位,属性数值需按照标准计量单位折算。按照属性值特点,将属性全部归入以下几个属性值转码类型:纯数值型(NumericType)、货值型(CurrencyType)、选项集型(ListType)和无需转码型(NoType)。NumericType型是指属性值由数字0~9和小数点组成。CurrencyType型是在纯数值型基础上增加了具体的货币种类。ListType型是指该属性值为一个系列选项,每一条选项对应一个代码,根据具体属性进一步定义选项集型小类,如国家地区型(RegionType)、港口型(PortType)、矿山型(MineType)等。NoType型是指该属性的值不需要经过转化处理,可直接用于编码中。属性类别是为方便查找属性而设置的,编写软件系统时使用联级选择框快速查找选定属性条目,如报关基本信息(BaseInfo)、装港相关信息(LoadInfo)、卸港相关信息(DischargeInfo)、计价信息(PriceInfo)、税费信息(TaxInfo)等。以上数据均需要存入数据库的Item表单中,以便后续查阅调用。属性条目示例见表1。
表1 属性条目示例
Table 1 Examples of attribute items
属性名称 | 标识符 | 单位 | 编码类型 | 属性类别 |
原产地 | ORG | / | RegionType | BaseInfo |
启运港 | LP | / | PortType | BaseInfo |
首次结算或预结算CIF总价 | FCIF | 币制 | CurrencyType | BaseInfo |
来源矿山 | MINE | / | MineType | LoadInfo |
提单重量 | BLW | kg | NumericType | LoadInfo |
装港水分 | LMS | % | NumericType | LoadInfo |
装港铜含量 | LCu1 | % | NumericType | LoadInfo |
1.2 编码技术步骤
对进口铜精矿属性进行编码,通常包括以下6个步骤:
第1步,获取一条属性的name、value 2个参数值,两者的数据类型均为字符串类型。
第2步,通过name找到对应的item,随后获取item的identifier、unit、type 3个参数值。
第3步,根据type类型,将value转化成值的值编码(value_code),若unit为币制,则需要获取货币名称(currency_name),并查出currency_name对应的货币ISO编码(currency_iso_code)。
第4步,将上述各部分码值拼接成完整的条目编码(final_code)。
第5步,重复以上4步,获得其他属性的final_code。
第6步,将多个final_code前后相接形成多个属性信息的长编码(long_code)。
上述步骤中值转码方法和码值拼接方法见“1.3属性值转码技术”。
1.3 属性值转码技术
前文中已经提到,属性值有4大类别,每个类别的值转码方式均不同。
1.3.1 NumericType值转码
NumericType值的编码转化方法参考GB/T 16986-2018《商品条码 应用标识符》[5]中数值转化方法。
第1步,创建整数型小数点位置参数(简称:位值,符号:n),n的值将加入identifier末尾。
第2步,给n赋值,当输入的value为整数时,则n取0值,无需对value进行处理,直接赋值给value_code;当输入的value含有小数点且大于1时,需检索value中“.”所处的位置,通过适当计算并将小数位数结果传递给n,再将value中“.”移除,得到新的字符串并赋值给value_code;当输入的value为小于1的数值时,检索value中“.”所处的位置,通过适当计算并将小数位数结果传递给n,再将value中“.”移除,并移除第一个非“0”字符前的所有“0”,得到新的字符串并赋值给value_code。
第3步,将identifier、n、value_code以(identifier & n)value_code形式拼接,得到final_code。编码示例见表2。
1.3.2 CurrencyType值转码
CurrencyType值的编码转化方法是对NumericType方法的进一步拓展,在其编码基础上再加入货币代码[6]。输入端除了需要name、value 2个参数外,增加了currency_name参数,根据输入内容获取identifier、n、value_code、currency_iso_code参数,并以(identifier & n)currency_iso_code & value_code形式拼接,得到final_code。编码示例见表3。
1.3.3 ListType值转码
ListType值的编码转化方法相对简单,但针对不同的item,需要不同的选项与代码对应列表,如国别地区代码对应表[7]、来源矿山代码对应表、国际港口代码对应表等,代码对应表中至少包含2个参数列,即value和value_code,2个参数内容应一一对应,并且唯一。输入端传入name、value 2个参数,根据输入内容获取identifier、value_code,并以(identifier)value_code形式拼接,得到final_code。编码示例见表4。
1.3.4 NoType值转码
如前文所述,NoType值不需要经过转化处理,可直接用于编码中。输入端传入name、value 2个参数,根据输入name获取identifier,value则直接赋值给value_code,并以(identifier)value_code形式拼接,得到final_code。编码示例见表5。
2 解码技术方案
解码是编码的逆向工程,其技术规则都遵循编码要求,解码通常包括以下5个步骤:
第1步,从long_code提取每个item的final_code。
第2步,从final_code提取括号中的字符串identifier_part。
第3步,判定identifier_part是否在Item表单identifier参数列内,存在则获取对应的name、type和unit,不存在则去掉identifier_part最后一位字符,再次判定新的identifier_part是否在Item表单中,存在则获取对应的name、type、unit,并将去掉的最后一位字符赋值给n,若仍然不存在,则表明该final_code不符合标准化编码技术要求,终止本条解码并进行下一条。
第4步,从final_code提取括号后的value_code,结合第3步获得的type类型和n,根据适当的转化方法获得value,需要特别注意的是,若type类型为CurrencyType,则需要从value_code中提取前3位字符currency_iso_code,剩余字符作为新的value_code,再按照上述方法进行转化。
第5步,重复步第2~4步直至全部final_code解析,将上述步骤中获得的name、value、unit以适当方式逐一拼接输出,item之间以“;”相互分隔。
以long_code“(ORG)152(MINE)1003(BLW0)10525000(LCu12)2765”为例,先提取出4个final_code,再对final_code逐一解码,获得所需的参数值,最后组合参数值得到解码结果,即“原产地:智利;来源矿山:Escondida;提单重量:10525000 kg;装港铜含量:27.65%”,解码示例见表6。
3 编码解码信息化系统构建
采用Python Flask框架、HTML、JavaScript、jQuery、嵌入式SQLite3轻量级数据库等技术,编写基于web的自动编码解码系统,实现对选定的item和输入值快速编码,以及对编码字符串的解码。HTML用于前端web页面渲染展示,JavaScript、jQuery用于对页面事件控制,Python用于程序控制、数据处理等,SQLite3用于存储数据处理阶段需要查找、调用的items、原产地、矿山、港口、货币等基础编码信息。
依据上述技术,初步构建了包含铜精矿信息管理模块、编码模块、解码模块、基础代码维护模块、用户管理模块的试验性系统。铜精矿信息管理模块包含新增、检索、查看、修改、删除等功能,并能提供整条信息完整编码;自选属性编码模块提供了灵活的自动编码方式,可根据自身需求对一条或多条属性进行编码;解码模块提供了编码字符串的反向解析,给出规范化的描述性文本;基础信息维护模块包含铜精矿属性代码信息、货币代码信息、矿山代码信息、国别地区代码信息、港口代码信息的新增、检索、查看、修改、删除、批量导入、批量导出等功能;用户管理模块为管理员提供新增用户、初始化用户密码、设置用户为管理员、修改用户信息、删除用户等功能。
初步构建的自选属性编码界面如图1所示,在属性名称列的下拉选项框内选择需要的item,在随后的属性值列的文本输入框中填入value,或在下拉选项框内选择value,当文本框失去焦点或选定value,系统自动触发脚本程序,并将编码结果反馈至编码结果栏。目前,试验性系统已经实现自动化编码,但不足之处在于85条属性items选择不够便捷,计划使用分级、多联下拉选项框,将items分配到5个class类中。第1级选择框用于class类选择,并根据选定的class类,自动列出第2级选择框中的items,使之能够更快地选定所需编码的item。
初步构建的解码界面如图2所示,在文本框中填入编码字符串,点击“解码”按钮,系统会自动在页面下方给出解码结果。数据处理程序中加入了编码符合性验证的执行代码,若某段编码字符串不符合技术规范,系统会将此段编码截取出来,并在界面反馈标明。
4 结语
本研究初步建立了铜精矿属性编码技术方案,并构建了自动编码解码试验性系统,证明了本编码方案的可行性。研究表明,商品编码是极简的信息载体,它是由字母、数字以及少量符号组成的字符串,所需存储内存小,并且字符串本身易于加密处理,能够保证数据传输安全。借助商品编码技术,可以制定商品大数据库中信息存储字段和数据结构规则,使其符合标准化编码技术要求,因此统一属性数据采集入口、统一属性及其值的表现形式、规范数据输入输出,便 可轻松建立商品大数据库。
本研究将进一步增加商品种类,完善商品属性条目,并积极推进与全球统一标识系统-全球主数据标准(GS1 GMD)的结合,构建数字编码与条形码、二维码之间的转化方式,使之更易于机器识别、采集和分析,实现编码技术的产业应用。
基金项目:海关总署科研项目(2020HK114)
第一作者:唐晨(1988—),男,汉族,江苏扬中人,硕士,工程师,主要从事进出口商品检验,E-mail: tangchen8862@163.com
通讯作者:封亚辉(1975—),男,汉族,江苏泰州人,硕士,研究员,主要从事进出口商品检验研究,E-mail: eggshell618@126.com
1. 南京海关工业产品检测中心 南京 210001
2. 南京海关 南京 210001
3. 沈阳海关 沈阳 110179
1. Nanjing Customs Industrial Products Testing Center, Nanjing 210001
2. Nanjing Customs, Nanjing 210001
3. Shenyang Customs, Shenyang 110179
表2 NumericType编码示例
Table 2 Examples of NumericType encoding
属性名称 | 属性值 | 单位 | 标识符 | 位值 | 值码 | 编码 |
提单重量 | 10525000 | kg | BLW | 0 | 10525000 | (BLW0) 10525000 |
装港铜含量 | 27.65 | % | LCu1 | 2 | 2765 | (LCu12) 2765 |
装港汞含量 | 0.0047 | % | LHg | 4 | 47 | (LHg4) 47 |
表3 CurrencyType编码示例
Table 3 Examples of CurrencyType encoding
属性名称 | 属性值 | 货币名称 | 标识符 | 位值 | 值码 | 货币代码 | 编码 |
首次结算或预结算CIF总价 | 12552184.52 | 美元 | FCIF | 2 | 1255218452 | 840 | (FCIF2) 8401255218452 |
运费单价(t-1) | 800 | 人民币 | F2 | 0 | 800 | 156 | (F20) 156800 |
运费总价 | 20330.4 | 欧元 | F3 | 1 | 203304 | 978 | (F31) 978203304 |
表4 ListType编码示例
Table 4 Examples of ListType encoding
属性名称 | 属性值 | 单位 | 标识符 | 值码 | 编码 |
原产地 | 智利 | / | ORG | 152 | (ORG) 152 |
启运港 | 智利-安库德 | / | LP | 152001 | (LP) 152001 |
来源矿山 | Escondida | / | MINE | 1003 | (MINE) 1003 |
表5 NoType编码示例
Table 5 Examples of NoType encoding
属性名称 | 属性值 | 单位 | 标识符 | 编码 |
报关单号 | 230820202050000001 | / | CusN | (CusN) 230820202050000001 |
合同编号 | TDTR-MC-CC-2021 | / | ConN | (ConN) TDTR-MC-CC-2021 |
装运船舶 | NY TRADER | / | VES | (VES) NY TRADER |
表6 解码示例
Table 6 Examples of decoding
属性码 | 标识码部分 | 值码部分 | 标识符 | 位值 | 属性名称 | 编码类型 | 单位 | 属性值 |
(ORG)152 | ORG | 152 | ORG | None | 原产地 | RegionType | / | 智利 |
(MINE)1003 | MINE | 1003 | MINE | None | 来源矿山 | MineType | / | Escondida |
(BLW0)10525000 | BLW0 | 10525000 | BLW | 0 | 提单重量 | NumericType | kg | 10525000 |
(LCu12)2765 | LCu12 | 2765 | LCu1 | 2 | 装港铜含量 | NumericType | % | 27.65 |
图1 编码界面
Fig.1 Encoding page of coding system
图2 解码界面
Fig.2 Decoding page of coding system
参考文献
[1] 朱立平. 应用商品识别码推动海关进出口商品智慧管理[J]. 海关与经贸研究, 2018, 39(4): 40-53.
[2] 陈星华. 整合申报首月 青岛海关接受新报关单近40万[EB/OL]. (2018-9-13)[2021-8-31]. http://www.customs.gov.cn/customs/ xwfb34/302425/2007153/index.html.
[3] 中华人民共和国国家质量监督检验检疫总局, 中华人民共和国环境保护部, 中华人民共和国商务部. 公告2017年第106号: 关于明确进口铜精矿中有毒有害元素限量的公告[EB/OL]. (2017-12-2) [2021-9-3]. http://www.mofcom.gov.cn/article/b/g/201803/ 20180302716892.shtml.
[4] 国家市场监督管理总局, 中国国家标准化管理委员会. 国家物品编码通用导则: GB/T 37004-2018[S]. 北京: 中国标准出版社, 2019.
[5] 国家市场监督管理总局, 中国国家标准化管理委员会. 商品条码 应用标识符: GB/T 16986-2018[S]. 北京: 中国标准出版社, 2018.
[6] 中华人民共和国国家质量监督检验检疫总局, 中国国家标准化管理委员会. 表示货币和资金的代码: GB/T 12406-2008[S]. 北京: 中国标准出版社, 2008.
[7] 中华人民共和国国家质量监督检验检疫总局. 世界各国和地区名称代码: GB/T 2659-2000[S]. 北京: 中国标准出版社, 2001.
(文章类别:CPST-C)