一种在线设计合同表单及生成合同文本的方法及装置
技术领域
本申请涉及合同表单技术领域,尤其涉及一种在线设计合同表单及生成合同文本的方法及装置。
背景技术
随着经济的发展与人们法律意识的增强,合同的应用范围越来越广泛,涉及到生产生活中的各个领域。
目前,人们常在应用合同的过程中,设置若干合同模板。合同模板可针对具体的合同事项,确定签订合同所需的固定的内容,并可重复使用,为用户提供便利。
但是,合同模板中的内容过于固定化,不能满足业务需求发展的多样性与丰富性,也不能满足用户的各种业务需求,使得用户体验不佳。
发明内容
本申请实施例提供一种在线设计合同表单及生成合同文本的方法及装置,用以解决合同模板中的内容过于固定化,不能满足业务需求发展的多样性与丰富性,也不能满足用户的各种业务需求,使得用户体验不佳的问题。
本申请实施例提供的一种在线设计合同表单及生成合同文本的方法,包括:
根据选定的合同模板,动态生成相应的合同表单;
确定用户对所述合同表单中的合同表单元素的修改及合同数据的添加;
根据修改完成的合同表单,以及所述合同数据,生成合同文本。
在一个示例中,根据选定的合同模板,动态生成相应的合同表单,包括:根据合同模板中的待填项,确定与相应待填项匹配的合同表单元素;根据选定的合同模板,确定与所述选定的合同模板匹配的合同表单元素,并动态生成相应的合同表单。
在一个示例中,根据合同模板中的待填项,确定与相应待填项匹配的合同表单元素,包括:从数据库预设的数据格式中,自动确定各待填项对应的合同表单元素匹配的数据格式;所述数据格式包括数据类型、长度。
在一个示例中,确定用户对所述合同表单中的合同表单元素的修改,包括:确定用户对所述合同表单中的合同表单元素的修改操作;所述修改操作包括是否必填、是否隐藏、是否可编辑。
在一个示例中,根据修改完成的合同表单,以及所述合同数据,生成合同文本,包括:获取用户输入的合同数据,并自动填充至相应待填项的位置,生成合同文本。
在一个示例中,所述方法还包括:将所述合同数据与所述合同表单对应存储在数据库中。
在一个示例中,根据修改完成的合同表单,以及所述合同数据,生成合同文本,包括:采用POI组件,将所述修改完成的合同表单以及所述合同数据,转化为可输出的合同文本,以便下载。
在一个示例中,采用POI组件,将所述修改完成的合同表单以及所述合同数据,转化为可输出的合同文本,包括:将所述合同模板文件转化为输入流;采用POI组件,将所述合同模板文件替换为所述修改完成的合同表单以及所述合同数据;采用POI组件,将处理后的输入流转化为可输出的合同文本。
在一个示例中,所述方法还包括:根据用户的请求,对自动填充后的合同文本进行实时展示。
本申请实施例提供的一种在线设计合同表单及生成合同文本的装置,包括:
第一生成模块,根据选定的合同模板,动态生成相应的合同表单;
确定模块,确定用户对所述合同表单中的合同表单元素的修改及合同数据的添加;
第二生成模块,根据修改完成的合同表单,以及所述合同数据,生成合同文本。
本申请实施例提供一种在线设计合同表单及生成合同文本的方法及装置,通过对合同模板进行解析,确定相应的合同表单元素,并对合同表单元素进行修改,可根据业务需要,对合同表单进行任意变更,以得到自己想要的合同表单。这种在线设计合同表单的方法,增强了签订合同的灵活性,能够满足不同用户对不同业务需求的要求。
并且,在修改合同表单时,可同时录入合同数据,这样能够在设计合同表单的同时,也在***中录入合同的数据,避免了修改合同表单与录入合同数据分两步执行的繁琐操作,简化了用户管理合同的操作。
此外,服务器可根据合同待填项与合同表单元素的匹配,建立合同模板与合同表单之间的关联关系,并自动将合同数据填充到合同模板中相应的位置上,从而同步产生带有合同数据的合同文本,以便用户进行查看。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的在线设计合同表单及生成合同文本的方法流程图;
图2为本申请实施例提供的存储合同模板的操作界面示意图;
图3为本申请实施例提供的合同表单界面示意图;
图4为本申请实施例提供的在线设计合同表单及生成合同文本的装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的在线设计合同表单及生成合同文本的方法流程图,具体包括以下步骤:
S101:根据选定的合同模板,动态生成相应的合同表单。
在本申请实施例中,数据库中可预存有若干合同模板。于是,服务器可根据用户在签订合同时所选定的合同模板,动态生成相应的合同表单,展示给用户。其中,合同表单应用在合同设计的过程中,表现为一种可编辑的页面,包括组成合同的各种表单元素、组件,如文本框、单选框、下拉选择框等。
在一个实施例中,将合同模板存储在数据库中的过程包括以下步骤:
第一步,服务器可接收用户上传的电子版的合同模板文本。
第二步,服务器可确定用户上传的合同模板文本中的待填项。
具体的,服务器可根据预设的特殊标识,确定用户预先在合同模板文本中所做的特殊标识的标记。服务器可默认将用户做有标记的位置,即特殊标识所在的位置,认为是待填项。其中,待填项表示合同中需要填写的内容,例如合同双方、合同标的、合同金额等。
第三步,服务器可确定用户针对该合同模板文本添加的合同表单元素。
第四步,服务器可根据用户添加的合同表单元素,以及确定出的合同模板文本中的待填项,确定与相应待填项相匹配的合同表单元素,也就是确定待填项对应的数据性质。其中,合同表单元素的内容可包括元素名称、元素标签、对应字段等。
第五步,在确定合同模板中的待填项分别与各合同表单元素的对应关系后,服务器可赋予该合同模板唯一的合同模板标识,并存储在数据库中。
在一个实施例中,服务器可根据用户的操作,确定用户选定的合同模板对应的合同模板标识。服务器可根据该合同模板标识,确定与该合同模板相匹配的所有合同表单元素。于是,服务器可根据确定出的合同表单元素,自动生成相应的合同表单,并展示给用户。
如图2所示,为存储合同模板的操作界面示意图。在图2中,服务器可通过“附件”栏接收用户上传的合同模板文本,并通过“基本信息”栏确定该合同模板文本对应的基本信息。需要说明的是,本图中的基本信息仅仅是一种示意性的形式,在实际应用中可根据需要设置,本申请对此不做限定。
通过预先在存储合同模板时,对合同模板与合同表单元素的匹配,使得服务器可根据用户选定的合同模板,即时动态生成相应的合同表单,以便用户后续对合同表单的修改。这样简化了用户在设计合同表单时的操作,能够为用户提供便利。
在一个实施例中,服务器在预先设置合同表单元素的信息时,针对一些合同必备的基础的合同表单元素,可固定设置对应字段,如合同名称、甲方、甲方联系方式等。
针对某些合同中较少出现的合同表单元素,或某些合同独有的合同表单元素,服务器可根据预设的数据格式,为这些合同表单元素自动匹配合适的数据格式。其中,数据格式可包括数据类型、长度等。
通过为合同表单元素自动匹配合适的数据库字段,可尽量使得不同的合同模板均能够采用同一套数据结构,这样能够避免产生复杂的数据结构,便于合同数据的汇总、分析。
S102:确定用户对合同表单中的合同表单元素的修改及合同数据的添加。
在本申请实施例中,数据库中预存有若干合同表单元素,合同表单元素的内容包括元素名称、元素标签、对应字段、是否隐藏、是否可编辑等。其中,“元素名称”表示该元素在合同中的对应名称,如合同编号、甲方、乙方等。“元素标签”表示区分各个合同表单元素的唯一标识。“对应字段”表示合同表单元素在数据库表中存储时对应的字段。“是否隐藏”表示合同中是否需要该合同表单元素,若需要,可将该内容设置为“否”,表示将该合同表单元素显示在合同中,若不需要,可将该内容设置为“是”,表示隐藏该合同表单元素。“是否可编辑”表示合同表单元素在合同中能否由用户任意编辑。
可知,针对用户选定的合同模板,其对应的合同表单元素的“是否隐藏”一栏的内容应当为“否”,而该合同模板中没有的合同表单元素的“是否隐藏”一栏的内容应当为“是”。
在本申请实施例中,服务器可根据用户的操作,确定用户对合同表单中的各合同表单元素的修改,并确定用户针对各合同表单元素输入的合同数据。其中,这里所指的合同表单元素,包括合同模板对应的、不隐藏的合同表单元素,也包括其他隐藏的合同表单元素。
具体的,服务器可确定用户对合同表单中的合同表单元素的修改操作,包括通过修改“是否隐藏”添加或删除合同表单元素、确定合同表单元素是否必填、确定合同表单元素是否可编辑、引用其他组件(如日期组件)、采用通用校验,等等。
通过为合同表单元素设置“是否隐藏”栏,而非直接删除该合同表单元素,使得后续可根据相应合同表单元素对数据库中存储的合同的历史数据进行查询,方便后续的数据查询与追溯。
如图3所示为根据合同模板动态生成的合同表单界面示意图。在图3中,服务器可通过用户对各合同表单元素“是否隐藏”、“是否可编辑”、“是否预制”等栏的设置,确定各合同表单元素对应的信息。
S103:根据修改完成的合同表单,以及合同数据,生成合同文本。
在本申请实施例中,服务器可根据用户修改完成的合同表单,以及用户针对各合同表单元素录入的合同数据,直接生成相应的、带有合同数据的合同文本。
具体的,服务器可根据合同表单中的待填项与合同表单元素的匹配关系,确定用户录入的合同数据应当在合同文本中的哪个位置。于是,服务器在获取到用户输入的合同数据后,可自动将合同数据填充到合同文本中相应的待填项的位置,生成合同文本。
在一个实施例中,服务器可根据用户的请求,获取自动填充后的合同文本,并实时展示给用户,这样能够使用户正在维护的合同的内容更加直观的展现出来。
在一个实施例中,服务器可在用户完成合同表单设计后,将用户录入的合同数据,与相应的合同表单对应存储在数据库中。
在本申请实施例中,通过对合同模板进行解析,确定相应的合同表单元素,并对合同表单元素进行修改,可根据业务需要,对合同表单进行任意变更,以得到自己想要的合同表单。这种在线设计合同表单的方法,增强了签订合同的灵活性,能够满足不同用户对不同业务需求的要求。
并且,在修改合同表单时,可同时录入合同数据,这样能够在设计合同表单的同时,也在***中录入合同的数据,避免了修改合同表单与录入合同数据分两步执行的繁琐操作,简化了用户管理合同的操作。
此外,服务器可根据合同待填项与合同表单元素的匹配,建立合同模板与合同表单之间的关联关系,并自动将合同数据填充到合同模板中相应的位置上,从而同步产生带有合同数据的合同文本,以便用户进行查看。
在一个实施例中,服务器可采用JAVA中的POI组件,将修改完成的合同表单以及合同数据,转化为可输出的合同文本,推送至用户的终端,以便用户下载。
具体的,服务器可获取用户上传的合同模板,并将该合同模板文件转化为输入流。之后,服务器可确定与该合同模板匹配的合同表单(即修改完成的合同表单)以及合同数据,并采用POI组件,将该合同模板文件替换为修改完成的合同表单以及相应的合同数据。最后,服务器可采用POI组件,将处理后的输入流转化为可输出的合同文本。
在一个实施例中,一种可能的代码的实现方式如下:
模板文件转化为输入流传入POI组件,进行内容初始化:
public void init()IOException{
inputStream=new FileInputStream(new File(this.temLocalPath));
xwpfDocument=new WXPFDocument(inptStream);
}
替换合同模板为合同表单数据:
public boolean export(List<Map<String,String>>params,int tableIndex,Map<String,String>textMap)throws
Exception{replaceText(xwpfDocument,textMap);
this.insertValueToTable(xwpfDocument,textMap,0);
if(tableIndex==10){
this.insertValueToSubjectTable(xwpfDocument,params,1,“html”);
}else{
this.insertValueToSubjectTable(xwpfDocument,params,1,“”);
}
return true;
}
将处理后的输入流以输出流的形式输出为合同文本:
public Boolean generate(String outDocPath)throws IOException{
outputStream=new FileOutputStream(outDocPath);
xwpfDocument.write(outputStream);
this.close(outputStream);
this.close(intputStream);
return true;
}
以上为本申请实施例提供的在线设计合同表单及生成合同文本的方法,基于同样的发明思路,本申请实施例还提供了相应的在线设计合同表单及生成合同文本的装置,如图4所示。
图4为本申请实施例提供的在线设计合同表单及生成合同文本的装置结构示意图,具体包括:
第一生成模块401,根据选定的合同模板,动态生成相应的合同表单;
确定模块402,确定用户对所述合同表单中的合同表单元素的修改及合同数据的添加;
第二生成模块403,根据修改完成的合同表单,以及所述合同数据,生成合同文本。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。