本发明涉及软件开发,具体为一种多表格类煤矿信息化系统快速开发方法。
背景技术:
1、随着社会的进步,信息技术被越来越多的领域所应用,而互联网的发展使我国的企业也在向信息经济转变。随着经济全球化的到来,使他们在社会生产方式和经济管理方式上发生了质的转变。
2、由于信息化的普及,我国的煤炭企业也开始在企业内部实施信息化的进程,逐步建立煤炭企业的内部信息网。但是,煤矿企业信息化建设与其他行业相比,发展相对落后,建设力度不够,再加上煤矿企业员工学历不高,人员素质有高有低,尤其是高级管理人才和信息管理人才的相对匮乏,使得企业当前的信息化建设不得不依托于第三方来进行。而在信息化建设的过程中,一些可以通过传感器传输的信息可以自动上传生成报表,而有很大的一部分信息因传输协议的限制或是人为干预过多的原因,只能依靠纸质台账进行留存。这不仅造成了资源上的浪费,也给之后的项目统一管理带来了很大的阻碍。
3、因此,本发明提供了一种多表格类煤矿信息化系统快速开发方法,可以使信息化系统开发效率显著提升,进而起到加速煤矿信息化建设的作用。
技术实现思路
1、本发明为了解决现有技术的问题,提供了一种多表格类煤矿信息化系统快速开发方法。
2、为了解决上述技术问题,本发明是通过以下技术方案实现的:一种多表格类煤矿信息化系统快速开发方法,包括以下步骤:
3、步骤一:后端数据库字段属性读取:读取后端数据库的字段属性,并将这些属性存入公共键值对备用;
4、步骤二:后端构建统一的获取新增项、增、删、改、查接口:构建后端统一的接口,用于获取新增项、增加、删除、修改和查询数据;
5、步骤三:前端构建自适应多字段表格:构建前端自适应的多字段表格,并实现新增弹窗功能,新增弹窗能够通过后端返回的字段区分下拉框、数值、字符串、文件等类型,并使用不同的html元素进行呈现;
6、步骤四:服务开启伊始定义公共键值对:在服务开启时定义公共键值对,以表格页唯一标识为key值,以包含表格在数据库中的表名、表头、字段名、字段类型的类作为value值;
7、步骤五:使用sql语句在接口调用之前读取表属性:在接口调用之前,使用sql语句读取表的属性,将备注作为前端表格页面的表头,并根据查询结果的字段类型区分前端表格页面新增弹窗的html元素;
8、步骤六:判断公共键值对是否含有目标页面的唯一标识:在接口调用之前,判断公共键值对是否含有目标页面的唯一标识,有则说明该页面的数据库表相关属性已读取;
9、步骤七:定义区分前端表格页面新增弹窗html元素的字段属性枚举:在定义区分前端表格页面新增弹窗html元素的字段属性枚举时,包含数字、字符串、日期不带时刻(“yyyy-mm-dd”)、日期带时刻(“yyyy-mm-dd hh:mm:ss”)、文件、多文件等类型;
10、步骤八:在获取新增项、增、改、查等接口时判断并转换值:在获取新增项、增加、修改、查询等接口时,使用公共键值对内已完成赋存的字段属性键值对进行判断,按对应类型进行值转换,包括但不限于将下拉框类型的字段将选项值转换为选项描述、时刻(datetime)类型的字段转为符合“yyyy-mm-dd”或“yyyy-mm-dd hh:mm:ss”格式要求的字符串(string)。
11、优选的,所述步骤一中,后端数据库字段属性读取,并存入公共键值对备用,包括:
12、使用sql语句读取表属性,将字段名作为公共键值对内类的字段名,备注作为表头,类型则按字段类型存取键值对,即将公共键值对定义为:
13、
14、
15、以上提及的input字段类型,包括数字、字符串、日期不带时刻(yyyy-mm-dd)、日期带时刻(yyyy-mm-dd hh:mm:ss)、文件、多文件等类型,
16、在使用sql语句读取表属性的步骤中,包括:
17、mysql使用如下语句:
18、`show full columns from${表格在数据库中的表名};`;
19、sql server使用如下联合查询语句:
20、
21、
22、优选的,所述步骤二中,后端构建统一的获取新增项、增、删、改、查接口,包括:
23、构建上述接口之前,预先判断公共键值对中是否含有该请求页的唯一标识,作为判断是否完成数据库表属性在公共键值对中赋存的依据,
24、构建获取新增项的接口时,接收表格页唯一标识,输出数组,内容为字段名、表头、字段类型组成的类,即:
25、输入:state:表格页唯一标识
26、结果:[
27、{
28、field:字段名,与数据库表中的字段对应,
29、title:表头,与数据库表中的备注对应,
30、param:字段类型{
31、type:类型,用于区分前端html元素,
32、value:类型为下拉框时,选项实际值,
33、title:类型为下拉框时,选项描述
34、}
35、}
36、]
37、构建新增和修改接口时,接收表格页唯一标识、数组和文件数组,接收数组内容为新增内容的具体值,前端未填项用“empty”进行填充,其中文件数组内容为文件上传完成后返还的url地址数组,不涉及文件的表项可以不传入此参数,即:
38、输入:{
39、state:表格页唯一标识
40、content:[
41、新增内容的具体值
42、]
43、}
44、结果:新增数据成功的结果通知json
45、构建查询接口时,接收表格页唯一标识,使用公共键值对内已完成赋存的字段属性键值对进行判断,按对应类型进行值转换,包括但不限于将下拉框类型的字段将选项值转换为选项描述、时刻(datetime)类型的字段转为符合“yyyy-mm-dd”或“yyyy-mm-dd”格式要求的字符串(string),即:
46、switch(字段类型枚举):{
47、case“下拉框”:{
48、按选项值在数组中的索引值找到选项描述,并将该描述赋予结果
49、break;
50、}
51、}。
52、优选的,所述步骤二中,构建编辑或新增接口时,获取到字段名数组后抛出第一个值,即去除建表时创建的自增长标识。
53、优选的,所述步骤二中,构建编辑或新增接口时,用处理后的字段名数组长度与请求体中的数组长度做比较,以此来确认前端页面中是否有输入项,如若不符则返回前端“表格项未有修改”的消息。
54、优选的,所述步骤二中,构建编辑或新增接口时,筛选对应值不为“empty”的字段名,预先定义空值即“empty”对应的乱码值,以排除与比较值相同的冲突;而后遍历请求体的数组,将为“empty”的值替换为乱码值加索引的组合存入新数组,并将原字段名数组中的字段名替换为乱码值加索引的组合;遍历新数组,将原先字段名数组中包含新数组内项的数值项剔除,即:
55、tempprops为处理后的字段名数组,content为请求体的数组;
56、定义emptystr为代表空值的乱码值,如“83159860-ade5-11ed-b82d-9fc9ae9f46b6”;
57、定义emptyarr为存储乱码值的数组;
58、定义realvalues为实际值数组;
59、for(let i=0;i<content.length;i++)//遍历请求体中的数组
60、{
61、if(content[i]==”empty”)
62、{
63、//原先字段名数组中对应的值替换为乱码值加索引的组合
64、tempprops[i]=emptystr+i.tostring();
65、//emptyarr加入乱码值加索引的组合
66、emptyarr.push(tempprops[i]);
67、}else{
68、//将请求体中不为“empty”的值添加到实际值数组
69、realvalues.push(content[i]);
70、}
71、}
72、emptyarr.foreach(e=>{//遍历新数组
73、tempprops.splice(tempprops.indexof(e),1);
74、//将原先字段名数组中包含新数组内项的数值项剔除
75、})。
76、优选的,所述步骤二中,构建新增接口时,将筛选之后的字段名数组转换为字符串,并将该字符串拼接为用于新增的sql语句,即:
77、`insert into数据库表名(筛选后的字段名数组.join(','))values(实际值数组)`;。
78、优选的,所述步骤二中,构建编辑接口时,将筛选之后的字段名数组遍历与实际值拼接,并将该字符串作为编辑的sql语句,即:
79、tempprops为字段名数组,realvalues为实际值数组
80、定义updatestr为更新语句片段
81、for(let i=0;i<tempprops.length;i++)
82、{
83、if(i==tempprops.length-1)//判断是否为数组末位
84、{
85、//按“字段名=实际值”的格式进行拼接
86、updatestr+=`${tempprops[j]}='${realvalues[j]}'`;
87、}else{
88、//若非末位,则拼接入“,”分隔符
89、updatestr+=`${tempprops[j]}='${realvalues[j]}',`;
90、}
91、}
92、数据库语句则为:
93、`update数据库表名set更新语句片段where id=编辑项唯一标识`。
94、优选的,所述步骤三中,前端构建自适应多字段表格,并实现新增弹窗,能够通过后端返回的字段区分下拉框、数值、字符串、文件等类型,且将不同类型选用不同的html元素进行呈现,包括:
95、使用jquery通用表格,并通用单选、多选、分页方法,以及导出excel功能,在编辑和新增的功能开发时,使用根据内容元素个数自适应高度的弹窗,并根据服务端返回的字段类型,将html元素实现为数字输入框、字符串输入框、下拉框、日期选择器、文件选择器等。
96、本发明的有益效果为:
97、1.简化了构建表格类页面业务时的开发逻辑,快速实现18个表格之多的增、删、改、查需求,使得开发人员本身只需关注水害感知数据联网项目中的上传、断线续传的逻辑,而无需再把注意力放在数据源的收集和管理上。中间件的开发量也会因此减少,提高代码的复用率,显著提升系统的开发效率。