張成強 盧鳳娟

摘要:隨著信息技術的迅猛發展,項目管理部門需要在項目管理方式上緊跟時代發展潮流,摒棄傳統的手工管理方式,采取信息化、智能化管理手段進行項目管理。該文提出了一個項目管理系統設計方案,并應用到項目的實際管理當中。
關鍵詞:項目管理系統;管理信息化;設計與實現
中圖分類號: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.
【通聯編輯:謝媛媛】