最近几年,用户陆续提出指标考核、民主测评、投票打分、安全生产管理业务信息化需求,这些需求都有一部分相似性,例如:
- 对业务中各项指标/管理项目打分;
- 指标项目及内容,每年度都有一定的变化;
- 业务过程中,打分表是中间过程,汇总出总分后,打分表仅留存备查。
参考业务如下:
基于MongoDB数据库的Scheme设计
由于打分表内容的文档性,我们仅对关键数据,例如总分等内容进行深入管理,其他的以文档形式留存,这样将采用文档数据库MongoDB管理打分表及其指标项目。
每类打分表(关系型数据库中的表)为一套集合(Collection),Schema不固定,按模版规则处理。
Key | 数据说明 | 用法示例 |
---|---|---|
names | 投票表单名称 | names:党风廉政建设责任制民主测评票(班子) |
rvsn_number | 业务名称 | rvsn_number:DFLZJS| |
tableid | 投票评价表单ID | tableid:DFLZJS_BZCP |
level | 指标分类分级 | level:2 |
firstitems | 第一级分类、分层 | firstitems:[(注:数组) |
classa | 第一级/层的内容 | classa:加强作风建设的情况 |
rowspana | 合并单元格跨行数 | rowspana:3 |
seconditems | 第二级/层指标内容 | seconditems:[ |
content | 指标内容 | content:落实中央“八项规定”… |
orderby | 顺序 | orderby:1 |
datastyle | 打分录入样式 | datastyle:0 |
注:上述Schema是不固定的,按业务规则调整。
功能设计
序号 | 功能名称 | 功能描述 |
---|---|---|
1 | 打分表及指标配置管理 | 创建打分表,可以配置多级指标内容,并回显 |
2 | 考核周期管理 | 设置考核周期,以及考核范围,即涉及到的表 |
3 | 被考核者管理 | 设置被考核人或组织,以及与打分表对应关系 |
4 | 投票人管理 | 设置参与的投票人,以及匿名帐号和密码管理 |
5 | 投票打分 | 按设置展现打分表,并由投票人填写打分 |
6 | 匿名登录及主页 | 投票人匿名登录及对应的界面、菜单 |
7 | 汇总打分及导出 | 管理员汇总打分结果,并导出结果到Excel中 |
8 | 报表查询 | 个性化功能,可以通过导入Excel数据,再展现 |
9 | 打分表模版管理 | 分为一级、二级、三级分类指标 |
由于汇总评分的业务规范复杂、多变,因此,此部分工作由导出Excel数据,人工通过Excel处理来完成最后的出总分工作。
设计小结
投票打分设计有两个关键点:
- 打分表文档化管理,引入文档型数据库MongoDB进行管理打分表数据;
- 指标可配置及其动态渲染打分表;
- 与业务流程管理模型对应,借助现有功能完成业务,如下图所示。
上图中,系统定制开发时,对应业务模型关系为:考核期管理中设置考核周期、被考核者,相当于流程的起草的相关操作;设置投票人相当于系统选人;生成评测票相当于系统产生待办打分任务。
1. 打分表及指标配置管理
打分表参考业务管理模型进行管理,增加“投票打分”分类,例如:创建“党风廉政建设民主评测“业务,业务分类为“投票打分“,其下有多个打分表(参见附参考1.中的业务管理模型)。
这里配置管理属于系统管理范畴,需要额外增加打分表和指标维护管理两部分功能,管理过程及功能如下图所示。
指标维护管理界面设计
投票打分录入形式设计
指标动态回显表单,详见《使用JavaScript实现动态创建含合并单元格(行)的表单 》 内容。
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table | joins | 表连接,MongoDB不支持 |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
参考:
1. 《谈业务流程全生命周期管理支撑业务流程再造(1) 》 肖永威 2015.9
2. 《用于考核、评价的投票打分系统解决方案 》 肖永威 2014.6
3. 《使用JavaScript实现动态创建含合并单元格(行)的表单 》 肖永威 2016.4