趙培
(河北省中小企業信用擔保服務中心,石家莊050000)
隨著社會經濟的快速發展,企業的發展也越發壯大,在這個飛速發展的信息時代,老舊的人事管理模式已日趨落后,目前急需對企業的頂梁柱、急先鋒——業務經理進行系統的信息化管理,以滿足新時代對現代企業的要求。
業務經理綜合管理系統將業務經理的各種操作全部集中到了這一系統中,大大地提高了業務經理日常操作的方便性和高效性,不僅為業務經理提供了方便,使繁雜的書面工作變得簡單有趣,也使得公司管理者可以方便地對每個業務經理的銷售情況和工作進展程度進行了解,無形中為企業創造了價值。這一章將業務經理綜合管理系統各個模塊做一個總體的需求分析,明確所要實現的功能,確定研究的深度。
業務經理綜合管理系統的設計和開發,主要包括后臺管理員模塊和前臺業務經理模塊。
業務經理綜合管理系統的后臺管理員模塊主要需完成如下幾個功能:
①添加業務經理,修改業務經理信息;②查看每個業務經理的銷售報告;③查看每個業務經理的工作計劃;④查看編輯所有的客戶信息;⑤審批業務經理的報銷申請和費用申請;⑥查看各個競爭對手的狀態;⑦向業務經理發送公告或通知;⑧出題對各個業務經理進行考核,查看考核結果;⑨查看所有工程信息。
業務經理綜合管理系統的前臺業務經理模塊主要有如下功能:
①上傳自己銷售的報告;②上傳和查看自己的工作計劃;③上傳、刪除、修改和查詢自己的客戶信息;④申請報銷和交際費用,查看審批狀態;⑤上傳競爭對手的狀態;⑥上傳工程信息;⑦查看系統公告;⑧參加考核,查看考試結果。
2.2.1 數據庫初步設計
根據系統功能設計的要求以及數據模型的設計,數據庫初步需要的存儲信息如下:
業務經理信息:包括(業務經理Id、用戶名、密碼和成績)等。
管理員信息:包括(管理員Id、用戶名和密碼)等。
客戶信息:包括(客戶Id、客戶姓名、電話號碼、手機號碼、地址、客戶類別)等信息。
競爭動態信息:包括(競爭動態Id、動態名稱、具體競爭動態情況)等。
考試題目信息:包括(題目Id、題目名稱、選項A、選項B、選項C、選項D、題目答案、答案解析)等。
答題結果信息:包括(結果ID、題目Id、答題結果)等。
交際費申請信息:包括(交際費申請ID、交際費申請名稱、金額、申請業務經理、是否審批、申請時間)等。
申請報銷信息:包括(申請報銷ID、申請報銷名稱、報銷類型、金額、申請用戶、是否審批)等。
銷售報告信息:包括(銷售報告Id、銷售報告名稱、客戶Id、商品、數量、金額、業務經理、銷售日期)等。
工程信息:包括(工程ID、工程名稱、開始時間、負責人)等。
工作計劃:包括(計劃ID、計劃名稱、計劃內容、日期、業務經理)等。
系統公告:包括(公告Id、公告名稱、公告內容、日期)等。
2.2.2 系統運行需求分析
系統要求界面友好,操作簡單,響應時間短,盡量減少手工干預,能讓用戶選擇的信息盡量不用用戶輸入,以提高準確率和效率。
本系統是采用MyEclipse作為前臺開發工具,Tomcat作為服務器,MySQL作為后臺數據庫平臺的業務經理綜合管理系統。運行時的基本配置要求如下:
硬件環境:主機PentiumⅣ以上,內存至少1GB。
軟件環境:操作平臺 Windows XP、Windows7、JDK1.6、Tomcat6.0、MySQL5.5。
本系統的總體設計采用結構化設計方法,把一個復雜的系統分解成相對獨立的若干模塊,通過對模塊的設計和模塊之間關系的協調來實現整個軟件系統的功能。
依據前面的需求分析,本系統的用例圖如下,管理員的用例圖如圖3.1所示。

圖3.1 管理員用例圖
管理員擁有上圖六個功能用例:
①業務經理管理模塊:該模塊下有添加業務經理、編輯業務經理功能。
②申請審批模塊:該模塊下有查看和審批業務經理提交的各種費用申請和報銷功能。
③考試管理模塊:用于管理員出題、查看考試結果和清空成績功能。
④客戶管理模塊:管理員查看所有客戶的詳細信息,對客戶信息進行增加、刪除、修改和模糊查詢。
⑤信息瀏覽模塊:查看業務經理上傳的銷售報告、工作計劃、競爭動態和工程信息。
⑥系統公告模塊:向業務經理發布公告,刪除公告。
業務經理的用例圖如圖3.2所示。

圖3.2 業務經理用例圖
業務經理具有六種功能用例:
①銷售報告管理:上傳銷售報告和查看所有自己上傳的報告。②工作計劃管理:查看今日計劃,上傳當日的工作計劃。③客戶管理:查看業務經理自己的客戶,修改和刪除客戶信息,模糊查詢客戶信息,新增客戶類別,新增客戶等。④日常事務管理:行程報銷,查看審批狀態,申請交際費,查看交際費審批狀態。⑤工程信息管理:添加工程信息。⑥其它功能:上傳競爭動態,查看系統公告,參加考試和查看考試答案。
根據前面的需求分析和概要設計,現將數據表的邏輯結構即數據結構表描述如下:
數據庫名稱為salesmanms。其中包括客戶類別、競爭動態、客戶、考試結果、交際費申請、系統公告、工作計劃、工程信息、行程報銷、銷售報告、考試題目、業務經理等12個數據表。
為了項目開發的快捷方便并且具有較強的可擴展性,本管理系統集成使用了Struts 2、JFreeChart和Spring框架來實現MVC架構。
MVC模式(三層架構模式)(Model-View-Controller)是軟件工程中的一種軟件架構模式,把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
MVC模式的目的是實現一種動態的程式設計,使后續對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能。除此之外,此模式通過對復雜度的簡化,使程序結構更加直觀。軟件系統通過對自身基本部份分離的同時也賦予了各個基本部分應有的功能。
MVC各部分的分工如下:
控制器(Controller)-負責轉發請求,對請求進行處理。
視圖(View)-界面設計人員進行圖形界面設計。
模型(Model)-程序員編寫程序應有的功能(實現算法等等)、數據庫專家進行數據管理和數據庫設計(可以實現具體的功能)。
該業務經理綜合管理系統可以劃分為管理員子系統和業務經理子系統。
管理員子系統系統功能結構圖如下圖3.3所示。

圖3.3 管理員子系統功能結構圖
管理員子系統由業務經理管理、申請審批、考試管理、客戶管理和系統公告幾個模塊組成。每個模塊的具體功能如下:
業務經理管理模塊:
①添加業務經理:添加公司中新入職的業務經理,需要輸入用戶名密碼等個人信息。②編輯業務經理:修改每個業務經理的個人信息;刪除離職的業務經理。
申請審批模塊:
①未審批行程報銷:顯示所有沒有經過審批的行程報銷申請,管理員可以在此對申請進行審批。②已審批行程報銷:顯示所有已經通過審批的行程報銷申請。③未審批交際費申請:顯示所有沒有經過審批的交際費申請,管理員可以在此對申請進行審批。④已審批交際費申請:顯示所有已經通過審批的行程報銷申請。
考試管理模塊:
①考試出題:管理員進行出題,輸入題目,各個選項,答案和答案解析。②所有題目:對每個題目進行修改和刪除操作。③考試結果:以柱狀圖的形式查看每個業務經理的考試結果情況。④清空成績:清空所有用戶的成績,以便重新進行考試。
客戶管理模塊:
對公司所有客戶進行修改和刪除操作;查找每個客戶的信息,并可以進行模糊查詢;按類別查詢所有客戶。
信息瀏覽模塊:
①瀏覽業務經理上傳的銷售報告信息;根據業務經理查看銷售報告;根據開始時間、結束時間和排序方式查詢銷售報告。②瀏覽業務經理上傳的工作計劃信息。③瀏覽業務經理上傳的競爭動態信息。④瀏覽業務經理上傳的項目信息。
系統公告模塊:
①發布公告:發布公告給所有業務經理查看。②刪除公告:刪除錯誤或過時的公告。
業務經理子系統功能結構圖如下圖3.4所示。

圖3.4 業務經理子系統功能結構圖
銷售報告模塊:
①上傳報告:上傳今天的銷售報告情況。②所有報告:查看所有已經提交過的報告。
工作計劃模塊:
①今日計劃:業務經理查看自己今天上傳的計劃信息。②新建計劃:業務經理上傳自己的今日計劃供管理員查看。
客戶管理模塊:
①客戶列表:業務經理查看自己的客戶信息,并可對客戶信息進行修改和刪除,還可以模糊查詢客戶信息;按類別查詢客戶信息。②新增客戶類別:業務經理增加自己的客戶類別,方便對客戶進行管理。③新增客戶:業務經理上傳自己的客戶信息。
日常事務模塊:
①行程報銷:向管理員申請行程報銷。②報銷狀態:查看已申請報銷的審批狀態。③交際費申請:向公司申請交際費用。④交際費審批狀態:查看已申請的交際費用是否通過審批。
工程信息模塊:
業務經理上傳工程信息,填寫信息包括工程名稱、開始時間和負責人等。
更多:
①競爭動態:業務經理上傳競爭對手的競爭動態。②系統公告:查看管理員發送的系統公告信息。③考試:參加公司的統一考試。④查看答案:查看試題答案。⑤系統包圖如下圖3.5所示。

圖3.5 系統包圖
com.wsqy.action.admin和com.wsqy.action.user兩個包分別為系統管理員和業務經理的Action層包,由JSP頁面直接請求,它們兩個包調用com.wsqy.service.impl包中的類,com.wsqy.service.impl包為服務層,其中的類實現com.wsqy.service包中的接口,com.wsqy.service.impl包調用com.wsqy.dao.impl包中的類,com.wsqy.dao.impl包中的類實現了com.wsqy.dao包中的接口。
在測試時環境搭建如下:在MyEclipse集成開發環境中選中所要部署的項目,點擊MyEclipse的部署按鈕,在出現的對話框中點擊add按鈕,選中要部署到的Tomcat服務器,在此之前要將Tomcat集成到MyEclipse中,點擊finish按鈕,開發環境會自動將當前的項目部署到Tomcat指定目錄中。點擊運行按鈕,啟動Tomcat。在瀏覽器地址欄中輸入http://localhost:8080/salesmanms進入登錄頁面。
我們對各模塊采用單元測試的方法對每一個小的模塊單元進行具體測試。
部分測試項目如下:
①登錄。測試系統操作界面,內容包括用戶名、密碼輸入和權限,合理性檢查、合法性檢查,系統操作界面顯示控制。
②添加業務經理。測試添加新用戶功能,內容包括新用戶信息的輸入,合理性檢查,合法性檢查,新用戶信息入庫是否正確。
③添加客戶。測試客戶是否可以添加成功,如果輸入的客戶名稱已存在,是否提示用戶,插入是否成功。
④查看客戶。測試是否可以對客戶進行模糊查詢。
測試對客戶的修改刪除是否正確處理。
⑤參加考試。測試如果業務經理已經參加過考試,是否允許重復考試。
測試考試完成后的成績計算是否正確。
⑥查看答案。主要測試如果業務經理沒有參加過考試,是否允許查看答案。
⑦查看考試結果。測試業務經理考試結果柱狀圖是否顯示正確。
測試結果如下:
①登錄。當輸入為空時,頁面提示請輸入用戶名。當用戶輸入用戶名1,密碼1時,進入管理員界面。當用戶輸入用戶名11,密碼11時,進入業務經理界面。輸入不存在的用戶名時,停留在當前頁面。
②添加業務經理。輸入用戶名密碼等業務經理信息,點擊按鈕提交后,業務經理信息被插入到了數據庫中。如果輸入用戶名為1,即已經存在的用戶名時,頁面提示用戶名已存在,不能將數據插入數據庫。
③添加客戶。當輸入客戶信息點擊提交后,客戶信息被插入到數據庫,頁面跳轉到客戶列表界面。當輸入客戶的名稱已經存在時,停留在當前頁面,不將數據插入數據庫。
④查看客戶。在客戶名稱中輸入存在的名稱點擊查詢,可以查找出客戶信息。輸入部分名稱,選中模糊查詢框,點擊查詢,會查找出所有含有該部分名稱的客戶。當修改客戶信息時,點擊按鈕提交后,客戶信息正確存入數據庫。刪除客戶時,客戶被正確刪除。
⑤參加考試。如果業務經理已經參加過考試,頁面跳轉到已經參加過考試的提示界面,不能重復考試。如果沒有參加過,則跳轉到考試頁面,顯示所有考題,答完題點擊提交后,系統會立即計算出業務經理的成績,并插入到數據庫。
⑥查看答案。如果業務經理沒有參加過考試,點擊考試答案,會跳轉到答題頁面。如果業務經理參加過考試,都會跳轉到答案頁面,顯示出所有題目和答案。
⑦查看考試結果。管理員點擊考試結果鏈接,頁面顯示所有用戶的成績柱狀圖,與數據庫的數據一致。