项目管理平台的设计与实现
2021-07-19张成强卢凤娟
张成强 卢凤娟
摘要:随着信息技术的迅猛发展,项目管理部门需要在项目管理方式上紧跟时代发展潮流,摒弃传统的手工管理方式,采取信息化、智能化管理手段进行项目管理。该文提出了一个项目管理系统设计方案,并应用到项目的实际管理当中。
关键词:项目管理系统;管理信息化;设计与实现
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)15-0088-03
Abstract: With the rapid development of information technology, Project management department should kee up with the development of the era in project management, abandon old manual management method, and adopt intelligent management method to do project management. This paper proposes a project management system design plan and applies it to the actual project management.
Key words: project management system; management informatization; design and implementation
1 背景
在传统的项目管理过程中,往往只是采用手工管理的方式管理项目,主要是纸张、电子文档记录、采用通讯软件或邮件进行信息沟通[1],这种方式需要消耗大量的时间和精力,效率低下,并且存在以下问题:项目进度不可控;跨部门协作不畅;过程管理难透明;项目管理成本高。
随着时代的发展,信息技术在不断改变着我们的生活和工作方式。为了解决上述问题,结合项目管理部门的实际需求,本文提出了一个项目管理系统设计方案,并应用到项目的实际管理当中,项目管理部门通过使用项目管理系统,可以实时查看项目横道图,了解项目进度和存在的问题,跟踪项目开展情况,同时可以导出项目进度报表、项目投资统计等数据用于决策分析。经过实践证明,利用该系统能够有效简化项目管理流程、提升工作效率、减轻项目管理人员的工作负担。
2 系统架构及相关技术介绍
2.1 相关框架介绍
1)ThinkPHP框架
ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架[2],拥有众多的原创功能和特性,已经成长为国内最领先和最具影响力的WEB应用开发框架。
2)layuiAdmin框架
layuiAdmin是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,其简单轻松的界面设计,丰富的内容模板,能够更好地满足用户对软件的需求,非常适合界面的快速开发。
2.2 相关技术介绍
1)PHP
PHP是通用服务器端脚本编程语言,其主要用于web開发以实现动态web页面,执行速度快、具有很好的开放性和可扩展性、支持多种主流与非主流的数据库。
2)MYSQL
MYSQL是最流行的关系型数据库管理系统之一,由于数据库体积小、速度快、总体拥有成本低、开放源代码,其有着广泛的应用[3]。
3)ECharts
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,提供了折线图、柱状图、散点图、饼图等各种图表[4]。
3 系统的分析与设计
3.1 需求分析
为了对项目管理实现更高效、更便捷的信息化管理,项目管理系统具有六个用户权限,分别是游客、企业项目人员、普通项目管理人员、项目负责人、项目部领导和超级管理员。
3.2 功能模块设计
1)前端部分:
①企业信息展示及查询。在前台展示企业信息,也可按不同条件进行企业数据筛选查询、分类汇总等操作。
②企业信息更新及录入。管理员可在后台录入及修改企业信息,企业用户可在前台填报或申请修改更新本企业数据信息。
③信息交流功能。用户可在前台与系统客服进行在线交流,也可通过相关页面进行留言,管理员登录后台答复。
④地图检索功能。用户如需查看企业地址位置信息,可在企业信息查询结果中点击跳转到地图页面,也可直接在地图页面中查找相应企业。
⑤项目招商功能。企业可在前台填报录入本企业信息,并提交项目建设申请。
2)后台部分:
①数据统计。包括对企业项目投资数据进行统计和对项目进度数据进行统计。
②企业信息管理。对企业信息进行维护,也可按不同条件对企业数据进行筛选查询。
③项目信息管理。可以对项目信息进行增删改查,也可按不同条件对项目信息进行筛选查询。
④项目进度管理。可以对项目进度进行增删改查,并生成项目进度横道图。
⑤系统权限管理。可以对不同的管理员、不同的角色分配不同的功能权限。
⑥项目权限管理。不同的项目管理员在不同的项目中的权限是不同的,可以为每个项目指定不同的管理员权限,有四个层级,分别为查看、编辑、审核和删除。
⑦内容管理。可以发布相关投资政策和项目相关规则制度。
⑧栏目管理。对项目的不同阶段进行分类。
⑨问题反馈。对用户反馈的问题进行回复或管理。
3.3 数据库设计
由于MYSQL数据库体积小、查询速度快,综合考虑,系统采用了MYSQL数据库,通过需求分析以及功能模块设计,在数据库中设计了二十多张表。
4 系统实现级标题
4.1 UI界面
UI界面是进入用户第一视觉的界面,良好的UI界面布局可以减少用户误操作和学习成本,让用户操作更为便捷[5]。系统的界面基于layuiAdmin框架,提高了前端的开发效率。后台首页主要分为六个部分:后台管理功能菜单、前台页面链接及账户信息、项目检索、经济指标完成情况、最新发布项目、最新政策。
4.2 主要模块的实现
1)后台用户登录
管理人员打开登录界面,输入账号、密码提交后,会通过Ajax将信息提交到控制器中,再对信息进行校验,若匹配则会进行权限验证并显示菜单,否则系统会提示用户名或密码错误。截取部分关键代码如下所示:
public static function checkSuper($account, $password)
{
$adminAccount = AdminModel::where('username', '=', $account)
->where('status', '=', 1)
->find();
if (empty($adminAccount)) {
throw new AdminException(30001);
}
//检验密码
if ($password !== $adminAccount['password']) {
// 添加失败次数
$adminAccount->loginfailure++;
$adminAccount->save();
throw new AdminException(30002);
}
// 更新登录记录
$adminAccount->loginfailure = 0;
$adminAccount->last_login_ip = Request::ip();
$adminAccount->last_login_time = date('Y-m-d H:i:s');
$adminAccount->save();
// 缓存登录用户id
cache('admin_id', $adminAccount->id);
return $adminAccount;
}
2)管理员菜单权限
根据需求分析,需要根据不同业务领域需要的各种权限创建不同的角色,为不同角色的管理员分配不同功能权限。要实现动态管理员菜单权限,首先根据用户的登录信息确认用户的角色,然后根据角色的权限在用户界面中加载相应的节点功能菜单列表[6]。在ThinkPHP框架實现菜单功能时,一级菜单对应一个控制器 Action类,二级操作菜单对应一个控制器方法Action方法,每个控制器方法对应一个URL操作。
3)数据表格及分页
在本次系统设计中,前端主要负责页面的展现和交互逻辑,后端主要负责业务和数据接口。在这种模式下,前端发出Ajax请求,后台接收到后进行相应的数据处理,然后返回json结果数据,最后动态地渲染到html页面上。因此提高了工作效率,使得分工更加明确,由于应用的代码不再是前后端混合,增强了代码的可维护性。
例如在项目管理页面中的数据表格处理流程中,首先由前端向后台的api地址发出get请求,后台经过数据查询后将结果返回,最后前台框架将结果渲染到html页面展示给用户。截取部分关键代码如下所示:
getList: function (params = {}) {
base.req('projects', params, function (data) {
$('.layui-table').remove();
var list = data.data;
table.render({
…
});
// 分页
laypage.render({
elem: 'table-page',
count: data.total,
limit: data.per_page,
curr: data.current_page,
layout: ['count', 'prev', 'page', 'next', 'limit'],
jump: function(obj, first){
if(!first){
var params = $('#layui-form-search').serialize();
var page = $.param({'page': obj.curr});
var limit = $.param({'limit': obj.limit});
params = page + '&' + limit + '&' + params;
module.getList(params);
}
}
});
}, 'get');
},
4)数据导入导出
除了可以单条增加数据外,本次还借助 PHPexcel扩展实现了数据的批量导入和导出,并且兼容.xls和.xlsx格式,数据库里的数据也可以按照搜索条件和分页导出为Excel文件。为了方便对导入的数据进行校验和修改,先将数据存到临时表,用户查看、修改、确认后,再将数据存入到正式的数据表中。
5)甘特图
利用dhtmlxgantt插件进行甘特图的展示,以图示的方式显示每一项任务的时间长短和进展情况,管理员由此可便利地弄清一项任务(项目)还剩下哪些工作要做,并可评估工作进度。对比传统电子表格制作的图表,电子表格绘制起来步骤烦琐、维护困难、信息量少,而利用Web页面展示的甘特图可以方便添加、维护任务,展示的信息更加全面,数据更为精确。
6)项目权限分配
项目权限分配主要通过关联admin表、project 表project_permission表来实现,管理员有查看、修改、审核、删除四种权限。在实现具体功能时,可以批量为管理员分配项目权限,在对项目信息进行操作时,首先对权限进行校验。
7)数据统计
由前端将表单中的数据条件通过Ajax向后台请求数据,后台进行相应的数据统计后再将结果返回,最终通过ECharts插件展示统计的图表。ECharts有着惊艳的视觉效果和良好的动画交互渲染效果,可以非常方便地展示统计结果。
5 总结与展望
本文主要是围绕项目管理部门在实际的项目管理中的需求来完成系统的技术选型、总体设计、数据库设计、详细设计,并最终完成了项目管理系统的设计实施,解决了项目管理过程的难题,提升了项目管理的工作效率。
在这次的系统设计中,也曾出现一些问题。比如由于需求的多次变动带来的功能调整,数据报表改动较大导致代码重写,由于对流程不熟悉带来的技术难题等。最终通过团队成员的努力,最终实现了系统的设计,完成了预期的目标。随着web技术的不断更新和进步,人们对便捷性、移动性的要求不断提高,今后还可以对系统进一步优化和提升,包括:适应移动端的访问,与其他部门系统的数据共享集成,进一步完善数据统计的展现类型。
参考文献:
[1] 张锦煌,吴丽娟,梁舒婷.基于SSM整合框架开发的项目管理系统[J].电脑知识与技术,2015,11(11):103-105.
[2] 王俊芳,李隐峰,王池.基于MVC模式的ThinkPHP框架研究[J].电子科技,2014,27(4):151-153,158.
[3] 王芳.网站开发中数据库的管理者——MySQL[J].电子技术与软件工程,2014(16):214.
[4] 周启云,许新华,付昱榕,等.基于Echarts的可视化学情分析系统设计与实现[J].信息技术与信息化,2020(3):116-119.
[5] 危文清.企业项目管理平台的设计与实现[D].成都:電子科技大学,2013.
[6] 罗予东.改进的RBAC权限管理在信息系统中的应用[J].嘉应学院学报,2012,30(2):24-28.
【通联编辑:谢媛媛】