一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于模板配置的数据传输参数转化方法与系统与流程

2022-06-05 11:16:00 来源:中国专利 TAG:
1.本技术涉及数据传输的领域,尤其是涉及基于模板配置的数据传输参数转化方法与系统。
背景技术
::2.在信息系统高速发展的现在,不同行业不同企业之间常需进行数据交流,以保证企业之间进行正常的交易与数据交换,特别是当进行大宗交易时,会产生较多的交易数据。3.而在钢铁行业系统之间的对接变得更加普遍。单个系统对接多个系统的时候,常需要针对不同的系统封装不同的转化参数,例如当自身系统与多个其他系统进行对接或多个其他系统与自身系统进行对接,封装逻辑基本都是耦合在调用系统代码里面,这样在对接多个不同系统的时候需要增加判断步骤,导致代码耦合性高、代码重复,代码可读性降低。技术实现要素:4.为了增加代码的可读性,本技术提供基于模板配置的数据传输参数转化方法与系统。5.本技术提供的基于模板配置的数据传输参数转化方法与系统采用如下的技术方案:一种基于模板配置的数据传输参数转化方法,包括:获取待转化系统的待转化参数;基于目标系统选取对应的参数转化模板;根据参数转化顺序,基于所述参数转化模板将所述待转化参数转化为所述目标系统的目标参数。6.通过采用上述技术方案,当将待转化系统的待转化参数转化为目标系统的目标参数时,通过在模板库中配置与选取对应的参数转化模板,使用参数转化模板进行转化,尽量避免待转化系统对接不同的目标系统时,添加针对各个系统的参数转化逻辑,减少系统代码量,解耦待转化系统与目标系统,增加代码可读性。7.可选的,所述基于所述目标系统选取对应的参数转化模板包括:基于所述待转化参数与所述目标参数制作所述参数转化模板;将所述参数转化模板存放至所述模板库中;基于所述目标系统在所述模板库中选取对应的所述参数转化模板。8.通过采用上述技术方案,不同的目标系统存在有不同的目标参数,当目标系统发生改变时,只需基于待转化参数与目标参数制作对应的参数转化模板,并将参数转化模板存放在模板库中,根据目标系统在模板库中选用对应的参数转化模板,尽量避免修改系统代码。9.可选的,所述基于所述参数转化模板将所述待转化参数转化为所述目标系统的目标参数包括:基于所述待转化参数与所述目标参数分别获取对应的入参paramconfigurejsonobject与originparamdata,所述paramconfigurejsonobject与所述originparamdata均包含有对应用于识别的key值,所述paramconfigurejsonobject为模板配置参数json,所述originparamdata为待转化具体参数json;基于所述originparamdata获取list《string》delkeys,所述list《string》delkeys用于存放所述paramconfigurejsonobject中无法在所述originparamdata中找到的所述key值;读取参数转化模板,通过迭代器遍历所述paramconfigurejsonobject获取对应所述迭代器的对象iter;获取hashmap,将模板属性对象的key值保存于所述hashmap;读取所述对象iter获取模板参数转化entry对象entry;获取所述对象entry的value值;判断所述value值是否为空获取判断结果,基于判断结果将所述待转化参数转化为所述目标系统的目标参数。10.通过采用上述技术方案,使能获取对应的value值,并通过判断value值的判断结果将待转化参数转化为目标系统的目标参数。11.综上所述,本技术包括以下至少一种有益技术效果:通过设置包含有待转化参数的参数转化模板,当不同的系统参数之间需进行对接时,即待转化系统与目标系统之间需进行对接时,根据参数转化顺序,使基于参数转化模板将待转化参数转化为目标系统的目标参数,使进行参数转化时减少系统代码量,解耦待转化系统与目标系统,增加代码可读性。附图说明12.图1是本技术基于模板配置的数据传输参数转化方法其中一实施例的流程示意图;图2是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s110之前的流程示意图;图3是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s120的流程示意图;图4是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s130的流程示意图;图5是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s470的流程示意图;图6是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s470中的流程示意图一;图7是本技术基于模板配置的数据传输参数转化方法另一实施例步骤s470的流程示意图二;图8是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s660的流程示意图;图9是本技术基于模板配置的数据传输参数转化方法其中一实施例步骤s130的流程示意图二;图10是本技术基于模板配置的数据传输参数转化系统其中一实施例的结构框图。13.附图标记:1、待转化参数获取模块;2、参数转化模板获取模块;3、转化模块。具体实施方式14.以下结合附图对本技术作进一步详细说明。15.在信息技术高速发展的现在,进行大宗的交易尤其是钢铁行业进行交易时,不同企业内部仓库系统之间常需进行对接,针对不同的系统封装不同的转化参数,封装逻辑基本都是耦合在调用系统代码里面,这样在对接多个不同系统的时候需要增加判断步骤,导致代码耦合性高、代码重复,代码可读性降低。16.为了降低不同系统对接时,代码的耦合性与重复性,增加代码可读性,本技术实施例公开基于模板配置的数据传输参数转化方法与系统。17.参照图1,基于模板配置的数据传输参数转化方法,包括如下步骤:s110、获取待转化系统的待转化参数。18.其中,在本实施例中待转化系统为其中一用户所采用的仓库管理系统,根据用户的实际使用需求设置有对应的参数,待转化参数为待转化系统内根据自身情况进行转化的参数,例如,待转化参数包括时间、用户名、数值等参数,不同的系统对应的参数格式不同,因此在系统之间进行转化时,需将参数格式进行转化。19.s120、基于目标系统选取对应的参数转化模板。20.其中,不同的目标系统之间参数转化模板不同,例如在实际应用过程中method_params字段的参数转化模板为:{ꢀꢀꢀ"owner":"owner##string##required##null",ꢀꢀꢀ"note":"note##string##notrequired##null",ꢀꢀꢀ"transports":[{ꢀꢀꢀ"identitynum":"transports‑‑transportorcardno##string##required##null","transportormobile":"transports‑‑transportormobile##string##required##null",ꢀꢀꢀ"transportcarnum":"transports‑‑transportcarnum##string##required##null",ꢀꢀꢀ"transportor":"transports‑‑transportor##string##required##null"}],ꢀꢀꢀ"acompanynoticeid":"outnoticeid##string##required##null",ꢀꢀꢀ"outplantime":"outplantime##string##notrequired##null",ꢀꢀꢀ"outnoticeid":"businessnumber##string##required##null",ꢀꢀꢀ"details":[{ꢀꢀꢀꢀꢀꢀ"factory":"details‑‑factory##string##required##null",ꢀꢀꢀꢀꢀꢀ"num":"details‑‑num##integer##required##0",ꢀꢀꢀꢀꢀꢀ"balenum":"details‑‑coilid##string##notrequired##null",ꢀꢀꢀꢀꢀꢀ"weight":"details‑‑weight##double##required##0","relationid":"details‑‑appinventorysummaryid##string##required##null",ꢀꢀꢀꢀꢀꢀ"cardno":"details‑‑cardno##string##notrequired##null",ꢀꢀꢀꢀꢀꢀ"breed":"details‑‑breed##string##required##null",ꢀꢀꢀꢀꢀꢀ"spec":"details‑‑spec##string##required##null",ꢀꢀꢀ"qualitygrade":"details‑‑qualitygrade##string##notrequired##null",ꢀꢀꢀꢀꢀꢀ"material":"details‑‑material##string##required##null",ꢀꢀꢀꢀꢀꢀ"numunit":"details‑‑numunit##string##notrequired##null",ꢀꢀꢀꢀꢀꢀ"peramount":"details‑‑peramount##integer##notrequired##0",ꢀꢀꢀ"outnoticeitemid":"details‑‑appinventoryid##string##required##null",ꢀꢀꢀ"weightunit":"details‑‑weightunit##string##notrequired##null"ꢀꢀꢀ}],ꢀꢀꢀ"warehouse":"warehouse##string##notrequired##null",ꢀꢀꢀ"deliverycompany":"newowner##string##required##null",ꢀꢀꢀ"warehousecode":"abutmentcode##string##notrequired##null"}其中,上述参数转化模板"outnoticeitemid":"details‑‑appinventoryid##string##required##null"中的‘outnoticeitemid’(未知选项)为获取目标参数名称,即为需进行转化的待转化参数的入参,待转化参数的入参为待转化系统的参数的集合;‘details‑‑appinventoryid’(应用清单名称)为目标参数来源;‘‑‑’为分隔符号,有分隔符号代表从嵌套名称为‘details’的‘list’(清单)内获取‘appinventoryid’(应用清单名称)字段获取数值;‘string’配置为目标参数类型;‘required’配置为目标参数一定需要;‘null’配置为默认值,当配置成required也就是目标参数一定需要的情况下如果待转化参数获取不到数值则去默认配置值。[0021]s130、根据参数转化顺序,基于参数转化模板将待转化参数转化为目标系统的目标参数。[0022]其中,假设a公司与b公司、c公司建立有数据传输关系,当a公司向b、c公司传输数据时,需按照b、c公司的数据格式进行转换,此时a公司的需进行数据交互的系统即为待转换系统,b、c公司的需进行数据交互的系统即为目标系统。而相反当b、c公司向a公司传输数据时,a公司的需进行数据交互的系统即为目标系统,b、c公司的需进行数据交互的系统即为待转换系统。因此待转化参数与目标参数随需求可进行对应的改变。[0023]本技术实施例基于模板配置的数据传输参数转化方法的实施原理为:当将待转化系统的待转化参数转化为目标系统的目标参数时,通过在模板库中配置与选取对应的参数转化模板,使用参数转化模板进行转化,尽量避免待转化系统对接不同的目标系统时,添加针对各个系统的参数转化逻辑,减少系统代码量,解耦待转化系统与目标系统,增加代码可读性。[0024]参照图2,获取待转化系统的待转化参数之前包括如下步骤:s210、获取参数配置表。[0025]其中,参数配置表在对应的数据库中采用sql语言根据实际情况进行创建,例如参数配置表可为:createtable`warehouse_system_param_config`(`id`bigint(20)notnullauto_incrementcomment'主键',`warehouse_system_config_id`bigint(20)notnulldefault'0'comment'仓库系统id',`accept_receive`tinyint(2)notnulldefault'0'comment'接受回调0-否1-是',`method_type`tinyint(2)notnulldefault'0'comment'对接单据0-现货入库1-过户入库2-现货出库3-过户出库',`method_params`textcomment'方法参数配置云仓仓库{"breed":"breed","material":"material"}{"breed":"普卷","material":"q235b"}-》{"categoryname":"普卷",materialname":"q235b"}-》sku-》{"categoryname":"普卷1",materialname":"q235"}',`callback_params`textcomment'回调地址参数解析',primarykey(`id`)usingbtree)engine=innodbauto_increment=70defaultcharset=utf8mb4row_format=dynamiccomment='仓库系统参数配置表'。[0026]s220、在参数配置表中获取待转化系统主键、待转化系统的第一id、判断是否回调的回调数值、判断是否出入库类型的对接单据、调用参数转化模板的方法参数配置项与回调地址参数解析项。[0027]其中,参数配置表中的相关参数分别根据需求进行设置,可根据实际需求进行增添,例如设置出库入库的状态。[0028]本技术实施例的实施原理为:通过配置参数配置表使分别对不同所述参数进行对应的配置,以便于进行对应的调用。[0029]参照图3,基于目标系统选取对应的参数转化模板包括如下步骤:s310、基于待转化参数与目标参数制作参数转化模板。[0030]s320、将参数转化模板存放至模板库中。[0031]其中,模板库也即为对应的存放参数转化模板的数据库,因此将参数转化模板存放至模板库中便于进行对应的调用。[0032]s330、基于目标系统在模板库中选取对应的参数转化模板。[0033]其中,模板库中存放有多个针对不同待转化系统与目标系统的参数转化模板,例如当a系统向b系统进行对接,且a系统为待转化系统,b系统为目标系统时,则选取参数转化模板ab,反之当a系统为目标系统时,则可选取对应的参数转化模板ba,而当a系统还需与c系统进行对接时,还需根据转化关系在模板库中选取对应的参数转化模板ac或ca。[0034]参照图4,基于参数转化模板将待转化参数转化为目标系统的目标参数,包括如下步骤:s410、基于待转化参数与目标参数分别获取对应的入参paramconfigurejsonobject与originparamdata,paramconfigurejsonobject与originparamdata均包含有对应用于识别的key值,paramconfigurejsonobject为模板配置参数json,originparamdata为待转化具体参数json。[0035]其中,模板配置参数json为目标系统的中的目标数据,待转化具体数据json为用户待转化系统中的原始数据。[0036]s420、基于originparamdata获取list《string》delkeys,list《string》delkeys用于存放paramconfigurejsonobject中无法在originparamdata中找到的key值。[0037]其中,delkeys用于存放需要删除的相关参数的名称,例如a系统中待转换参数的字段数为十个,而配置文件中配置的字段数量为六个,因此剩余的四个需进行删除,而删除后存放在list《string》delkeys中。[0038]s430、读取参数转化模板,通过迭代器遍历paramconfigurejsonobject获取对应迭代器的对象iter。[0039]其中,在本实施例中迭代器为iterator,迭代器是一种设计模式,用于遍历选取的对象,为list设计的迭代器可以从两个方向遍历list,也可从list中插入和删除元素。[0040]s440、获取hashmap,将模板属性对象的key值保存于hashmap。[0041]其中,hashmap为根据关键码值直接进行访问的数据结构,也就是通过把关键之映射到表中的一个位置来访问记录,以加快查找的速度,这个映射函数叫散列函数,存放记录的数组叫做散列表。[0042]s450、读取对象iter获取模板参数转化entry对象entry。[0043]其中,entry将键值对的对应关系封装为对象,即键值对对象,这样在遍历map集合时,可从每一个键值对对象中获取对应的键与对应的值。[0044]s460、获取对象entry的value值。[0045]其中,value为对象entry对应的值。[0046]s470、判断value值是否为空获取判断结果,基于判断结果将待转化参数转化为目标系统的目标参数。[0047]参照图5,判断value值是否为空获取判断结果,基于判断结果将待转化参数转化为目标系统的目标参数包括:s510、判断value值是否为空。[0048]s520、若是,则打印错误日志并提示该属性参数配置项配置为空。[0049]其中,当判断结果为是时,属性配置项为空时的意思为查询错误,导致代表未查询到相关的参数配置,因此需进行报错打印错误日志。[0050]s530、若否,则通过value值来将待转化参数转化为目标系统的目标参数。[0051]其中,当判断结果为否时,value值不为空,则代表可查询到对应目标系统的待转化参数。[0052]参照图6,通过value值来将待转化参数转化为目标系统的目标参数,包括如下步骤:s610、当模板配置的多个key值即paramconfigurejsonobject中存在有对应的value值为jsonarray对象时,即paramconfigurejsonarray,paramconfigurejsonarray为对应的模板配置参数,模板配置参数即设置于参数转化模板的目标参数。[0053]其中,jsonarray为数组,每个数组包括多个对象也就是jsonobject,因此paramconfigurejsonobject的数组为paramconfigurejsonarray,list《map》表示list集合中的对象是一个map对象,map对象里的元素按照一个键对应一个值匹配存储,键本体不重复,而键对应的值可以重复。map就像是一条街道,门牌号就相当于map里一个元素的key(键),而门里面住的人就相当于map每一个元素的value(值)。[0054]s620、将jsonarray对象转化为list《map》,遍历list《map》获取每个map的key值,每一map的key值为paramconfiguremapkey。[0055]s630、根据paramconfigurejsonobject的key值即paramconfigurejsonobjectkey在originparamdata通过getjsonarray的方式判断是否能获取对应源数据jsonarray,即originparamdatajsonarray,originparamdatajsonarray为待转化具体参数,待转化具体参数即设置于参数转化模板上待转化的待转化参数。[0056]s640、若否,则将paramconfigurejsonobjectkey存入list《string》delkeys。[0057]其中,当判断结果为否时,表示不能获取对应的原数据jsonarray即originparamdatajsonarray,意思为该目标系统不具备与待转换参数对应的目标参数。[0058]s650、若是,则遍历paramconfigurejsonarray与originparamdatajsonarray,当paramconfigurejsonarray的内部遍历对象key值与originparamdatajsonarray的内部遍历对象key值一致时,将originparamdatajsonarray内部遍历对象的值写入至paramconfigurejsonarray的内部遍历对象值。[0059]其中,当判断结果为是时,则表示目标系统具备与待转换参数对应的目标参数,而当paramconfigurejsonarray的内部遍历对象key值与originparamdatajsonarray的内部遍历对象key值一致时,将originparamdatajsonarray内部遍历对象的值写入至paramconfigurejsonarray的内部遍历对象值,使便于将待转换参数转换为目标参数。[0060]s660、通过paramconfigurejsonarray将待转化参数转化为目标系统的目标参数。[0061]其中,当将originparamdatajsonarray内部遍历对象的值写入至paramconfigurejsonarray的内部遍历对象值后,paramconfigurejsonobject即为对应的目标参数。[0062]参照图7,然而value值不为空时还可为其他的数值形式,本实施例的另一种实施方式为:s710、当模板配置的key值中存在有对应的value值为string时,判断originparamdata通过paramconfigurejsonarray以getstring的方式是否获取对应数值。[0063]其中,与步骤s610不同,当value值的类型为string时,string为字符串,此时需通过getstring的方式获取paramconfigurejsonarray中字符串对应的数值,判断是否能进行获取。[0064]s720、若是,则将数值写入key值中。[0065]其中,当判断结果为是时,将获取的数值写入key中。[0066]s730、若否,则将key值写入list《string》delkey中。[0067]其中,当判断结果为否时,则表示该目标系统不具备与待转换参数对应的目标参数,或待转换系统不具备与目标参数对应的待转换参数,此时需将对应的key值写入list《string》delkey,以便于将多出的待转换参数或目标参数进行删除。[0068]参照图8,通过paramconfigurejsonarray将待转化参数转化为目标系统的目标参数,包括如下步骤:s810、判断list《string》delkey中是否存在有数值。[0069]其中,list《string》delkey为在上文中用于存放paramconfigurejsonobject中无法在originparamdata中找到的key值,也即目标参数与待转化参数之间不一致的参数的key值,使便于通过list《string》delkey来对目标参数与待转化参数进行区分与识别。[0070]s820、若是,则遍历list《string》delkey,将遍历获取的key从paramconfigurejsonobject中进行删除,得到的对应paramconfigurejsonobject为目标参数。[0071]其中,遍历list《string》delkey中存放的key值,key值用于识别对应的paramconfigurejsonobject与originparamdata之间的不一致的部分,识别出来后将paramconfigurejsonobject中key值不符合需求的部分进行删除,使paramconfigurejsonobject剩余的参数均为所需的目标参数。[0072]s830、若否,则paramconfigurejsonobject即为目标参数。[0073]其中,当遍历后的list《string》delkey中不存在有key值时,则说明目标参数与待转化参数完全相互对应,即可将paramconfigurejsonobject视为目标参数。[0074]本技术实施例的实施原理为:当分别基于对应的参数转化模板进行配置时,首先根据需求获取并配置参数配置表,然后分别基于待转化参数与目标参数设置获取设置对应的入参paramconfigurejsonobject与originparamdata,首先迭代器迭代获取paramconfigurejsonobject对应的迭代值对象iter,并获取用于保存key值的hashmap,读取对象iter获取模板参数转化entry对象entry,并获取对象entry的value值,而后通过判断value值的数值并根据value的数值将待转化参数转化为目标参数,即通过判断value值是否为空并通过value值的存在状态来将paramconfigurejsonobject中参数转换为目标参数。[0075]参照图9,参数转化顺序包括正向转化顺序与逆向转化顺序,根据参数转化顺序,基于参数转化模板将待转化参数转化为目标系统的目标参数包括如下步骤:s910、当处于正向转化顺序时,待转化系统为自身系统,基于参数转化模板将自身系统的相关参数转化为用户系统的相关参数。[0076]s920、当处于逆向转化顺序时,待转化系统为用户系统,基于参数转化模板将用户系统的相关参数转化为自身系统的相关参数。[0077]本技术实施例还公开一种基于模板配置的数据传输参数转化系统,包括:待转化参数获取模块1,用于获取待转化系统的待转化参数;参数转化模板获取模块2,用于基于目标系统选取对应的参数转化模板;转化模块3,用于根据参数转化顺序,基于参数转化模板将待转化参数转化为目标系统的目标参数。[0078]本技术实施例基于模板配置的数据传输参数转化系统的实施原理为:待转化参数获取模块1获取待转化系统的待转化参数,参数转化模板获取模块2基于目标系统选取对应的参数转化模板,转化模块3根据参数转化顺序,基于参数转化模板将待转化参数转化为目标系统的目标参数。[0079]以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献