劉建芳,何偉娜
(平頂山學(xué)院 河南 平頂山 467000)
我國煤炭行業(yè)的信息化程度普遍偏低,大多數(shù)煤礦仍處于人工統(tǒng)計(jì)匯總的階段,加上機(jī)構(gòu)不斷地調(diào)整,職能不斷地變換、工作人員不能相對(duì)穩(wěn)定,企業(yè)的統(tǒng)計(jì)不全或斷檔,致使統(tǒng)計(jì)匯總口徑不一、數(shù)據(jù)不全、信息滯后、信息收集效率不高、統(tǒng)計(jì)過程中人為失誤較多等弊病[1-2]。這些現(xiàn)狀已不能適應(yīng)信息化的發(fā)展趨勢(shì),已經(jīng)制約了煤炭企業(yè)乃至整個(gè)煤炭行業(yè)的生存與發(fā)展,加強(qiáng)煤炭行業(yè)信息化建設(shè)已經(jīng)成為了我國煤炭行業(yè)提升管理水平的迫切需要。
CRM(Customer Relationship Management)系統(tǒng)是以客戶為中心,基于客戶生命周期的全過程,采用協(xié)同技術(shù)和理念,幫助企業(yè)更好的獲取客戶、保留客戶及提升客戶價(jià)值、提高客戶滿意度和忠誠度,從而全面提升企業(yè)競(jìng)爭(zhēng)能力和盈利能力[3-4]。CRM是選擇和管理有價(jià)值客戶及其關(guān)系的一種商業(yè)策略,CRM要求以客戶為中心的企業(yè)文化來支持有效的市場(chǎng)營銷、銷售與服務(wù)流程[5]。
輕量級(jí)SSH框架系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序[6]。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持,Spring做管理,管理struts和hibernate[7-8]。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為基本的Java對(duì)象,然后編寫基本的DAO(Data Access Objects)接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類來實(shí)現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最后由Spring做管理,管理struts和hibernate。
系統(tǒng)的基本業(yè)務(wù)流程是:在表示層中,首先通過JSP頁面實(shí)現(xiàn)交互界面,負(fù)責(zé)接收請(qǐng)求 (Request)和傳送響應(yīng)(Response), 然后 Struts根據(jù)配置文件 (struts-config.xml)將ActionServlet接收到的Request委派給相應(yīng)的Action處理。在業(yè)務(wù)層中,管理服務(wù)組件的Spring IoC容器負(fù)責(zé)向Action提供業(yè)務(wù)模型 (Model)組件和該組件的協(xié)作對(duì)象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在持久層中,則依賴于Hibernate的對(duì)象化映射和數(shù)據(jù)庫交互,處理DAO組件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果[9]。
采用SSH開發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離[10]。這樣無論前端如何變化,模型層只需很少的改動(dòng),并且數(shù)據(jù)庫的變化也不會(huì)對(duì)前端有所影響,大大提高了系統(tǒng)的可復(fù)用性。而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員并行工作,大大提高了開發(fā)效率。
功能需求即是完成系統(tǒng)所需要實(shí)現(xiàn)的功能,指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。
數(shù)據(jù)流程圖(DFD,Data Flow Diagram)是一種圖形化的系統(tǒng)模型,它在一張圖中展示系統(tǒng)的主要需求,即:輸入、輸出、過程和數(shù)據(jù)存儲(chǔ)。它描述了數(shù)據(jù)流動(dòng)、存儲(chǔ)、處理的邏輯關(guān)系。DFD與程序流程圖不同,DFD不表示程序的控制結(jié)構(gòu),只描述數(shù)據(jù)的流動(dòng)。DFD分成多層表示,從而逐步展開數(shù)據(jù)流和功能細(xì)節(jié)。
通過對(duì)客戶關(guān)系管理系統(tǒng)的分析,CRM的用戶分為4個(gè)外部實(shí)體,它們分別是系統(tǒng)管理員、銷售主管、客戶經(jīng)理和高管。由于他們?cè)谙到y(tǒng)中扮演的角色不同,對(duì)本系統(tǒng)的操作權(quán)限也各不相同。比如,客戶經(jīng)理可以操作與客戶信息有關(guān)的功能,銷售主管和銷售人員可以操作與銷售有關(guān)的功能,系統(tǒng)管理員可以操作數(shù)據(jù)字典和權(quán)限設(shè)置,而高管可以查看銷售統(tǒng)計(jì)分析數(shù)據(jù)。對(duì)“客戶關(guān)系管理系統(tǒng)處理”進(jìn)一步分解,可以得到五個(gè)子過程,分別為營銷管理、客戶管理、服務(wù)管理、統(tǒng)計(jì)管理和基礎(chǔ)數(shù)據(jù)管理 。
由于煤炭行業(yè)CRM系統(tǒng)的5個(gè)過程仍然可以分解,但由于基本過程太過復(fù)雜,所以可以將每個(gè)過程進(jìn)行單獨(dú)的分解,下面以客戶管理為例展開分析。
經(jīng)過和用戶的交談,了解到涉及到客戶管理過程的外部實(shí)體有兩個(gè),分別是客戶經(jīng)理和銷售主管??蛻艚?jīng)理錄入客戶基本信息,存儲(chǔ)到數(shù)據(jù)庫中的客戶基本信息表中。在訪問客戶后,將客戶交往記錄保存到數(shù)據(jù)庫中的客戶交往記錄表中,客戶經(jīng)理可以隨時(shí)查看客戶交往記錄,客戶歷史訂單和訂單明細(xì),其中歷史訂單保存在數(shù)據(jù)庫中的訂單表中,訂單詳情保存在訂單詳情表中。客戶經(jīng)理查看流失預(yù)警記錄,該記錄保存在數(shù)據(jù)庫中的客戶流失記錄表中,當(dāng)發(fā)現(xiàn)某個(gè)客戶有六個(gè)月的時(shí)間沒有下訂單,就要對(duì)該預(yù)警作出處理,暫緩客戶流失,如果客戶仍不下訂單,則將該客戶移到客戶流失記錄表中。具體客戶管理流程如圖1所示。
圖1 客戶管理數(shù)據(jù)流圖Fig.1 Customer management DFD
根據(jù)對(duì)基于煤炭行業(yè)的客戶關(guān)系管理系統(tǒng)(CRM)的理解與功能的分析,設(shè)計(jì)出其功能大概如下:
銷售機(jī)會(huì)的編輯,指派,刪除,查詢;制定開發(fā)計(jì)劃,執(zhí)行計(jì)劃,確定該銷售機(jī)會(huì)是開發(fā)成功還是開發(fā)失敗;訂單信息的查詢,增加,刪除;客戶信息的編輯,刪除,查詢;客戶流失信息的新建,暫緩流失,確認(rèn)流失;服務(wù)的新建,服務(wù)的分配,服務(wù)的處理,服務(wù)的反饋和服務(wù)的歸檔;數(shù)據(jù)字典中基本信息的增加,刪除,查詢,修改;煤炭行業(yè)產(chǎn)品信息和庫存信息的查詢;用戶信息的添加、修改、刪除。角色的添加、編輯和權(quán)限分配;客戶貢獻(xiàn)、客戶構(gòu)成、客戶服務(wù)和客戶流失情況的分析。
由以上信息可以畫出系統(tǒng)的功能結(jié)構(gòu)圖,如圖所示2所示。
圖2 系統(tǒng)功能結(jié)構(gòu)圖Fig.2 System function structure chart
下面以總體設(shè)計(jì)為指導(dǎo),利用系統(tǒng)的整體設(shè)計(jì)思想對(duì)系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì),并應(yīng)用相關(guān)技術(shù)實(shí)現(xiàn)系統(tǒng),主要以客戶管理模塊和統(tǒng)計(jì)分析模塊為例展開。
煤炭行業(yè)CRM系統(tǒng)是采用SSH框架來實(shí)現(xiàn)的。其中Struts作為系統(tǒng)的整體框架,負(fù)責(zé)MVC的分離。負(fù)責(zé)用戶提交數(shù)據(jù)的處理以及數(shù)據(jù)處理完成之后在頁面之間的跳轉(zhuǎn),Hibernate框架對(duì)持久層提供支持。Spring整合Struts和Hibernate來實(shí)現(xiàn)對(duì)象的動(dòng)態(tài)注入和事務(wù)操作,降低系統(tǒng)組件之間的耦合度。另外本系統(tǒng)還采用Spring來實(shí)現(xiàn)記錄系統(tǒng)運(yùn)行的日志信息。在前臺(tái)頁面采用了jQuery腳本庫和dwr控件,使客戶端的顯示更加豐富,與服務(wù)器的交互更加靈活,實(shí)現(xiàn)數(shù)據(jù)查詢與顯示的自動(dòng)化。
通過客戶管理數(shù)據(jù)流程圖對(duì)客戶管理模塊工作流程的分析,以客戶經(jīng)理處理客戶流失預(yù)警為例,客戶經(jīng)理查看客戶流失預(yù)警信息,系統(tǒng)會(huì)將客戶中在六個(gè)月時(shí)間沒有下訂單的列入到客戶流失預(yù)警列表中,這時(shí)候,客戶經(jīng)理就得針對(duì)這些客戶進(jìn)行處理,盡最大可能將客戶從流失預(yù)警狀態(tài)轉(zhuǎn)變?yōu)檎?蛻魻顟B(tài)。當(dāng)客戶經(jīng)理采取一系列措施進(jìn)行挽救,仍沒法讓客戶下訂單,那么就表示公司已經(jīng)失去這個(gè)客戶。這時(shí)候,就將該客戶移動(dòng)到客戶流失表中。
在具體實(shí)現(xiàn)時(shí)客戶管理包括客戶信息管理和客戶流失管理。客戶信息管理包括客戶基本信息的增刪改查,客戶聯(lián)系人、客戶歷史交往記錄和歷史訂單查看等;客戶流失管理包括暫緩客戶流失和客戶流失處理等功能。以客戶流失管理為例。點(diǎn)擊主頁面上客戶關(guān)系管理的子項(xiàng)客戶流失管理,系統(tǒng)會(huì)調(diào)用 CustomerAction中的 toLostList()方法,跳轉(zhuǎn)到 lost.jsp頁面,如圖3所示。
圖3 客戶流失管理界面Fig.3 Customer churn management interface
點(diǎn)擊圖4中的暫緩流失按鈕,系統(tǒng)會(huì)跳轉(zhuǎn)到relay.jsp頁面,在該頁面中需要填寫暫緩流失措施,填寫完畢后點(diǎn)擊保存,系統(tǒng)會(huì)調(diào)用 CustomerAction中的 doLostList()方法,在該方法中會(huì)對(duì)客戶狀態(tài)進(jìn)行相應(yīng)設(shè)置并調(diào)用接口ICommonBiz中的Update()方法,對(duì)客戶基本信息表進(jìn)行更新。當(dāng)點(diǎn)擊“確定流失按鈕”時(shí),系統(tǒng)會(huì)跳轉(zhuǎn)到confirm.jsp頁面,在該頁面中需要填寫確定客戶流失原因,填寫完畢后點(diǎn)擊保存,系統(tǒng)會(huì)調(diào)用CustomerAction中的doLostList()方法,在該方法中會(huì)對(duì)客戶狀態(tài)進(jìn)行相應(yīng)設(shè)置并調(diào)用接口ICommonBiz中的Update()方法,對(duì)客戶基本信息表和客戶流失表進(jìn)行更新。
可視化的統(tǒng)計(jì)與分析,將對(duì)公司高層領(lǐng)導(dǎo)作出正確決策作出巨大奉獻(xiàn)和支持。該模塊通過客戶的貢獻(xiàn)、構(gòu)成、服務(wù)和流失對(duì)該公司進(jìn)行整體測(cè)評(píng),通過圖形的方式直觀的反映出公司在過去一段時(shí)間的得失,并為下一階段公司的走向作出正確決斷。通過統(tǒng)計(jì)分析數(shù)據(jù)流程圖對(duì)客戶管理模塊工作流程的分析,統(tǒng)計(jì)分析是對(duì)以前的銷售產(chǎn)品數(shù)據(jù)、客戶構(gòu)成、服務(wù)滿意度以及客戶流失進(jìn)行圖表展示,使結(jié)果看起來更直觀、更生動(dòng)。當(dāng)用戶查看某一個(gè)分析圖時(shí),系統(tǒng)會(huì)自動(dòng)在后臺(tái)進(jìn)行統(tǒng)計(jì)、分析和計(jì)算,最終畫出圖表展示給用戶。
下面以客戶構(gòu)成分析為例,進(jìn)行具體實(shí)現(xiàn)步驟講解:點(diǎn)擊主頁面上統(tǒng)計(jì)報(bào)表的子項(xiàng)——客戶構(gòu)成分析,系統(tǒng)會(huì)調(diào)用CustomerAction 中的 toComponentList()方法,在該方法中,會(huì)調(diào)用IcustomBiz接口中的customerComponent()方法,該方法從數(shù)據(jù)庫中的Customer表中按照客戶構(gòu)成類型進(jìn)行查詢。查詢完畢后,前臺(tái)控制器會(huì)將請(qǐng)求發(fā)送到component.jsp頁面,由component.jsp進(jìn)行結(jié)果顯示。顯示結(jié)果如圖4所示。
圖4 客戶構(gòu)成統(tǒng)計(jì)Fig.4 Customer composition statistics
系統(tǒng)設(shè)計(jì)在技術(shù)上使用SSH框架,降低了系統(tǒng)功能模塊的耦合性,增強(qiáng)了系統(tǒng)的健壯性,使后期系統(tǒng)的擴(kuò)展和維護(hù)更加容易。在前臺(tái)頁面大量使用DWR和jQuery技術(shù),降低了瀏覽器和服務(wù)器之間交互的信息量,改善了用戶體驗(yàn)。
[1]劉偉.神華集團(tuán)煤炭運(yùn)銷管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].山東:山東大學(xué),2013.
[2]王立平,劉艷玲,趙文玲.數(shù)據(jù)挖掘技術(shù)在煤炭企業(yè)CRM構(gòu)建中的應(yīng)用研究[J].煤炭技術(shù),2013(11):250-251.WANG Li-ping,LIU Yan-ling,ZHAO Wen-ling.Application of data mining technology in CRM to build coal enterprises study[J].Journal of Coal Technology,2013(11):250-251.
[3]楊永恒,王永貴,鐘旭東.客戶關(guān)系管理的內(nèi)涵、驅(qū)動(dòng)因素及成長(zhǎng)維度[J].南開管理評(píng)論,2002(2):48-52.YANG Yong-heng,WANG Yong-gui,ZHONG Xu-dong.The connotation of customer relationship management (CRM),driving factors and growth dimension[J].Nankai Management Review,2002(2):48-52.
[4]齊佳音,李懷祖.客戶關(guān)系管理(CRM)的體系框架分析[J].工業(yè)工程,2002(1):44-47.QI Jia-yin,LI Huai-zu.Customer relationship management(CRM)system framework analysis[J].Journal of Industrial Engineering,2002(1):44-47.
[5]陳旭.CRM綜述[J].計(jì)算機(jī)應(yīng)用研究,2001(8):11-13.CHEN Xu.CRM review[J].Computer Application Research,2001(8):11-13.
[6]李建迎.基于Struts的工礦企業(yè)客戶關(guān)系管理系統(tǒng)設(shè)計(jì)[J].工礦自動(dòng)化,2013(10):13-16.LI Jian-ying.Industrial and mining enterprises customer relationship management system based on Struts design[J].Industrial Automation,2013(10):13-16.
[7]劉軍.基于SSH框架的煤炭運(yùn)銷管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國地質(zhì)大學(xué),2013.
[8]李剛.輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn):Struts+Spring3+HIbernate整合開發(fā)[M].北京:電子工業(yè)出版社,2011.
[9]王海濤,賈宗璞.基于Struts和Hibernate的Web應(yīng)用開發(fā)[J].計(jì)算機(jī)工程,2011(9):118-120.WANG Hai-tao,JIA Zong-pu.Based on struts and hibernate web application development[J].Computer Engineering,2011(9):118-120.
[10]胡凌云.基于SSH框架的銷售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.