張成強(qiáng) 盧鳳娟
摘要:隨著信息技術(shù)的迅猛發(fā)展,項目管理部門需要在項目管理方式上緊跟時代發(fā)展潮流,摒棄傳統(tǒng)的手工管理方式,采取信息化、智能化管理手段進(jìn)行項目管理。該文提出了一個項目管理系統(tǒng)設(shè)計方案,并應(yīng)用到項目的實際管理當(dāng)中。
關(guān)鍵詞:項目管理系統(tǒng);管理信息化;設(shè)計與實現(xiàn)
中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼: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 背景
在傳統(tǒng)的項目管理過程中,往往只是采用手工管理的方式管理項目,主要是紙張、電子文檔記錄、采用通訊軟件或郵件進(jìn)行信息溝通[1],這種方式需要消耗大量的時間和精力,效率低下,并且存在以下問題:項目進(jìn)度不可控;跨部門協(xié)作不暢;過程管理難透明;項目管理成本高。
隨著時代的發(fā)展,信息技術(shù)在不斷改變著我們的生活和工作方式。為了解決上述問題,結(jié)合項目管理部門的實際需求,本文提出了一個項目管理系統(tǒng)設(shè)計方案,并應(yīng)用到項目的實際管理當(dāng)中,項目管理部門通過使用項目管理系統(tǒng),可以實時查看項目橫道圖,了解項目進(jìn)度和存在的問題,跟蹤項目開展情況,同時可以導(dǎo)出項目進(jìn)度報表、項目投資統(tǒng)計等數(shù)據(jù)用于決策分析。經(jīng)過實踐證明,利用該系統(tǒng)能夠有效簡化項目管理流程、提升工作效率、減輕項目管理人員的工作負(fù)擔(dān)。
2 系統(tǒng)架構(gòu)及相關(guān)技術(shù)介紹
2.1 相關(guān)框架介紹
1)ThinkPHP框架
ThinkPHP 是一個免費開源的,快速、簡單的面向?qū)ο蟮妮p量級PHP開發(fā)框架[2],擁有眾多的原創(chuàng)功能和特性,已經(jīng)成長為國內(nèi)最領(lǐng)先和最具影響力的WEB應(yīng)用開發(fā)框架。
2)layuiAdmin框架
layuiAdmin是一款采用自身模塊規(guī)范編寫的前端UI框架,遵循原生HTML/CSS/JS的書寫與組織形式,其簡單輕松的界面設(shè)計,豐富的內(nèi)容模板,能夠更好地滿足用戶對軟件的需求,非常適合界面的快速開發(fā)。
2.2 相關(guān)技術(shù)介紹
1)PHP
PHP是通用服務(wù)器端腳本編程語言,其主要用于web開發(fā)以實現(xiàn)動態(tài)web頁面,執(zhí)行速度快、具有很好的開放性和可擴(kuò)展性、支持多種主流與非主流的數(shù)據(jù)庫。
2)MYSQL
MYSQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,由于數(shù)據(jù)庫體積小、速度快、總體擁有成本低、開放源代碼,其有著廣泛的應(yīng)用[3]。
3)ECharts
ECharts,一個使用 JavaScript 實現(xiàn)的開源可視化庫,可以流暢的運行在 PC 和移動設(shè)備上,提供了折線圖、柱狀圖、散點圖、餅圖等各種圖表[4]。
3 系統(tǒng)的分析與設(shè)計
3.1 需求分析
為了對項目管理實現(xiàn)更高效、更便捷的信息化管理,項目管理系統(tǒng)具有六個用戶權(quán)限,分別是游客、企業(yè)項目人員、普通項目管理人員、項目負(fù)責(zé)人、項目部領(lǐng)導(dǎo)和超級管理員。
3.2 功能模塊設(shè)計
1)前端部分:
①企業(yè)信息展示及查詢。在前臺展示企業(yè)信息,也可按不同條件進(jìn)行企業(yè)數(shù)據(jù)篩選查詢、分類匯總等操作。
②企業(yè)信息更新及錄入。管理員可在后臺錄入及修改企業(yè)信息,企業(yè)用戶可在前臺填報或申請修改更新本企業(yè)數(shù)據(jù)信息。
③信息交流功能。用戶可在前臺與系統(tǒng)客服進(jìn)行在線交流,也可通過相關(guān)頁面進(jìn)行留言,管理員登錄后臺答復(fù)。
④地圖檢索功能。用戶如需查看企業(yè)地址位置信息,可在企業(yè)信息查詢結(jié)果中點擊跳轉(zhuǎn)到地圖頁面,也可直接在地圖頁面中查找相應(yīng)企業(yè)。
⑤項目招商功能。企業(yè)可在前臺填報錄入本企業(yè)信息,并提交項目建設(shè)申請。
2)后臺部分:
①數(shù)據(jù)統(tǒng)計。包括對企業(yè)項目投資數(shù)據(jù)進(jìn)行統(tǒng)計和對項目進(jìn)度數(shù)據(jù)進(jìn)行統(tǒng)計。
②企業(yè)信息管理。對企業(yè)信息進(jìn)行維護(hù),也可按不同條件對企業(yè)數(shù)據(jù)進(jìn)行篩選查詢。
③項目信息管理??梢詫椖啃畔⑦M(jìn)行增刪改查,也可按不同條件對項目信息進(jìn)行篩選查詢。
④項目進(jìn)度管理??梢詫椖窟M(jìn)度進(jìn)行增刪改查,并生成項目進(jìn)度橫道圖。
⑤系統(tǒng)權(quán)限管理??梢詫Σ煌墓芾韱T、不同的角色分配不同的功能權(quán)限。
⑥項目權(quán)限管理。不同的項目管理員在不同的項目中的權(quán)限是不同的,可以為每個項目指定不同的管理員權(quán)限,有四個層級,分別為查看、編輯、審核和刪除。
⑦內(nèi)容管理。可以發(fā)布相關(guān)投資政策和項目相關(guān)規(guī)則制度。
⑧欄目管理。對項目的不同階段進(jìn)行分類。
⑨問題反饋。對用戶反饋的問題進(jìn)行回復(fù)或管理。
3.3 數(shù)據(jù)庫設(shè)計
由于MYSQL數(shù)據(jù)庫體積小、查詢速度快,綜合考慮,系統(tǒng)采用了MYSQL數(shù)據(jù)庫,通過需求分析以及功能模塊設(shè)計,在數(shù)據(jù)庫中設(shè)計了二十多張表。
4 系統(tǒng)實現(xiàn)級標(biāo)題
4.1 UI界面
UI界面是進(jìn)入用戶第一視覺的界面,良好的UI界面布局可以減少用戶誤操作和學(xué)習(xí)成本,讓用戶操作更為便捷[5]。系統(tǒng)的界面基于layuiAdmin框架,提高了前端的開發(fā)效率。后臺首頁主要分為六個部分:后臺管理功能菜單、前臺頁面鏈接及賬戶信息、項目檢索、經(jīng)濟(jì)指標(biāo)完成情況、最新發(fā)布項目、最新政策。
4.2 主要模塊的實現(xiàn)
1)后臺用戶登錄
管理人員打開登錄界面,輸入賬號、密碼提交后,會通過Ajax將信息提交到控制器中,再對信息進(jìn)行校驗,若匹配則會進(jìn)行權(quán)限驗證并顯示菜單,否則系統(tǒng)會提示用戶名或密碼錯誤。截取部分關(guān)鍵代碼如下所示:
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']) {
// 添加失敗次數(shù)
$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)管理員菜單權(quán)限
根據(jù)需求分析,需要根據(jù)不同業(yè)務(wù)領(lǐng)域需要的各種權(quán)限創(chuàng)建不同的角色,為不同角色的管理員分配不同功能權(quán)限。要實現(xiàn)動態(tài)管理員菜單權(quán)限,首先根據(jù)用戶的登錄信息確認(rèn)用戶的角色,然后根據(jù)角色的權(quán)限在用戶界面中加載相應(yīng)的節(jié)點功能菜單列表[6]。在ThinkPHP框架實現(xiàn)菜單功能時,一級菜單對應(yīng)一個控制器 Action類,二級操作菜單對應(yīng)一個控制器方法Action方法,每個控制器方法對應(yīng)一個URL操作。
3)數(shù)據(jù)表格及分頁
在本次系統(tǒng)設(shè)計中,前端主要負(fù)責(zé)頁面的展現(xiàn)和交互邏輯,后端主要負(fù)責(zé)業(yè)務(wù)和數(shù)據(jù)接口。在這種模式下,前端發(fā)出Ajax請求,后臺接收到后進(jìn)行相應(yīng)的數(shù)據(jù)處理,然后返回json結(jié)果數(shù)據(jù),最后動態(tài)地渲染到html頁面上。因此提高了工作效率,使得分工更加明確,由于應(yīng)用的代碼不再是前后端混合,增強(qiáng)了代碼的可維護(hù)性。
例如在項目管理頁面中的數(shù)據(jù)表格處理流程中,首先由前端向后臺的api地址發(fā)出get請求,后臺經(jīng)過數(shù)據(jù)查詢后將結(jié)果返回,最后前臺框架將結(jié)果渲染到html頁面展示給用戶。截取部分關(guān)鍵代碼如下所示:
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)數(shù)據(jù)導(dǎo)入導(dǎo)出
除了可以單條增加數(shù)據(jù)外,本次還借助 PHPexcel擴(kuò)展實現(xiàn)了數(shù)據(jù)的批量導(dǎo)入和導(dǎo)出,并且兼容.xls和.xlsx格式,數(shù)據(jù)庫里的數(shù)據(jù)也可以按照搜索條件和分頁導(dǎo)出為Excel文件。為了方便對導(dǎo)入的數(shù)據(jù)進(jìn)行校驗和修改,先將數(shù)據(jù)存到臨時表,用戶查看、修改、確認(rèn)后,再將數(shù)據(jù)存入到正式的數(shù)據(jù)表中。
5)甘特圖
利用dhtmlxgantt插件進(jìn)行甘特圖的展示,以圖示的方式顯示每一項任務(wù)的時間長短和進(jìn)展情況,管理員由此可便利地弄清一項任務(wù)(項目)還剩下哪些工作要做,并可評估工作進(jìn)度。對比傳統(tǒng)電子表格制作的圖表,電子表格繪制起來步驟煩瑣、維護(hù)困難、信息量少,而利用Web頁面展示的甘特圖可以方便添加、維護(hù)任務(wù),展示的信息更加全面,數(shù)據(jù)更為精確。
6)項目權(quán)限分配
項目權(quán)限分配主要通過關(guān)聯(lián)admin表、project 表project_permission表來實現(xiàn),管理員有查看、修改、審核、刪除四種權(quán)限。在實現(xiàn)具體功能時,可以批量為管理員分配項目權(quán)限,在對項目信息進(jìn)行操作時,首先對權(quán)限進(jìn)行校驗。
7)數(shù)據(jù)統(tǒng)計
由前端將表單中的數(shù)據(jù)條件通過Ajax向后臺請求數(shù)據(jù),后臺進(jìn)行相應(yīng)的數(shù)據(jù)統(tǒng)計后再將結(jié)果返回,最終通過ECharts插件展示統(tǒng)計的圖表。ECharts有著驚艷的視覺效果和良好的動畫交互渲染效果,可以非常方便地展示統(tǒng)計結(jié)果。
5 總結(jié)與展望
本文主要是圍繞項目管理部門在實際的項目管理中的需求來完成系統(tǒng)的技術(shù)選型、總體設(shè)計、數(shù)據(jù)庫設(shè)計、詳細(xì)設(shè)計,并最終完成了項目管理系統(tǒng)的設(shè)計實施,解決了項目管理過程的難題,提升了項目管理的工作效率。
在這次的系統(tǒng)設(shè)計中,也曾出現(xiàn)一些問題。比如由于需求的多次變動帶來的功能調(diào)整,數(shù)據(jù)報表改動較大導(dǎo)致代碼重寫,由于對流程不熟悉帶來的技術(shù)難題等。最終通過團(tuán)隊成員的努力,最終實現(xiàn)了系統(tǒng)的設(shè)計,完成了預(yù)期的目標(biāo)。隨著web技術(shù)的不斷更新和進(jìn)步,人們對便捷性、移動性的要求不斷提高,今后還可以對系統(tǒng)進(jìn)一步優(yōu)化和提升,包括:適應(yīng)移動端的訪問,與其他部門系統(tǒng)的數(shù)據(jù)共享集成,進(jìn)一步完善數(shù)據(jù)統(tǒng)計的展現(xiàn)類型。
參考文獻(xiàn):
[1] 張錦煌,吳麗娟,梁舒婷.基于SSM整合框架開發(fā)的項目管理系統(tǒng)[J].電腦知識與技術(shù),2015,11(11):103-105.
[2] 王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究[J].電子科技,2014,27(4):151-153,158.
[3] 王芳.網(wǎng)站開發(fā)中數(shù)據(jù)庫的管理者——MySQL[J].電子技術(shù)與軟件工程,2014(16):214.
[4] 周啟云,許新華,付昱榕,等.基于Echarts的可視化學(xué)情分析系統(tǒng)設(shè)計與實現(xiàn)[J].信息技術(shù)與信息化,2020(3):116-119.
[5] 危文清.企業(yè)項目管理平臺的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013.
[6] 羅予東.改進(jìn)的RBAC權(quán)限管理在信息系統(tǒng)中的應(yīng)用[J].嘉應(yīng)學(xué)院學(xué)報,2012,30(2):24-28.
【通聯(lián)編輯:謝媛媛】