服務(wù)項(xiàng)目管理系統(tǒng)_第1頁
服務(wù)項(xiàng)目管理系統(tǒng)_第2頁
服務(wù)項(xiàng)目管理系統(tǒng)_第3頁
服務(wù)項(xiàng)目管理系統(tǒng)_第4頁
服務(wù)項(xiàng)目管理系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、服務(wù)項(xiàng)目管理系統(tǒng) 設(shè)計(jì)說明書1 軟件背景11.1 可行性分析21.1.1 功能可行性21.1.2 經(jīng)濟(jì)可行性21.1.3 管理可行性22 軟件概述及設(shè)計(jì)方案3軟件構(gòu)架圖7功能結(jié)構(gòu)分析73 針對(duì)軟件的各功能模塊做具體的設(shè)計(jì)描述及附注相關(guān)設(shè)計(jì)結(jié)果83.1 服務(wù)產(chǎn)品管理83.1.1 功能簡(jiǎn)介83.1.2 功能說明93.1.3 數(shù)據(jù)表設(shè)計(jì)93.2 服務(wù)方案管理93.2.1 功能簡(jiǎn)介93.2.2 功能說明103.2.3 數(shù)據(jù)表設(shè)計(jì)103.3 培訓(xùn)管理113.3.1 功能簡(jiǎn)介113.3.2 功能說明113.3.3 數(shù)據(jù)表設(shè)計(jì)111 軟件背景系統(tǒng)的背景是:近年來,隨著it服務(wù)行業(yè)的發(fā)展,對(duì)服務(wù)項(xiàng)目管理方面產(chǎn)

2、生了很大需求,針對(duì)此需求提出開發(fā)服務(wù)項(xiàng)目管理系統(tǒng)的必要,可以實(shí)現(xiàn)出更多的用途或滿足更多需要。與原有技術(shù)相比所體現(xiàn)出方便快捷優(yōu)勢(shì)。服務(wù)項(xiàng)目管理系統(tǒng)是服務(wù)項(xiàng)目管理軟件的通俗化名稱,服務(wù)項(xiàng)目管理系統(tǒng)是服務(wù)產(chǎn)品管理、服務(wù)方案管理,培訓(xùn)管理統(tǒng)計(jì)銷售業(yè)績(jī)的先進(jìn)工具,適合企業(yè)管理部門辦公使用,協(xié)助方案經(jīng)理和方案人員快速管理客戶、服務(wù)和業(yè)務(wù)的重要數(shù)據(jù)。服務(wù)項(xiàng)目管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。1.1 可行性分析1.1.1 功能可行性

3、1) 系統(tǒng)完整性:整個(gè)服務(wù)項(xiàng)目管理系統(tǒng)具備系統(tǒng)設(shè)計(jì)的科學(xué)合理性,方案管理信息錄入,修改,刪除及學(xué)生成績(jī)的查詢等功能符合學(xué)校對(duì)學(xué)生的管理要求,滿足了相關(guān)人員對(duì)信息管理的要求,適用于復(fù)雜的學(xué)生管理,因而達(dá)到了設(shè)計(jì)任務(wù)的要求.2) 系統(tǒng)的可靠性:該系統(tǒng)可靠性高,能無故障正常的工作,當(dāng)出現(xiàn)異常情況是還采取了一些防止系統(tǒng)破壞的方法和措施,如密碼保存,數(shù)據(jù)備份等.3) 系統(tǒng)的效率:與舊系統(tǒng)相比,減輕了許多重復(fù)的繁瑣的勞動(dòng)和手工計(jì)算量,抄寫量,在對(duì)學(xué)生成績(jī)進(jìn)行評(píng)價(jià)和統(tǒng)計(jì)方面效率提高了不少.4) 系統(tǒng)的工作質(zhì)量:學(xué)生管理系統(tǒng)所提供數(shù)據(jù)的精確度,輸出結(jié)果的易讀性都能達(dá)到用戶要求,使用方便,使學(xué)生管理工作變得輕松

4、,有序而有效.5) 系統(tǒng)的靈活性:系統(tǒng)的環(huán)境是不斷變化的,因而該學(xué)生管理系統(tǒng)具有一定的擴(kuò)充性,修改信息方便簡(jiǎn)易,能夠、適應(yīng)環(huán)境的變化.1.1.2 經(jīng)濟(jì)可行性6) 減少資金占用.由于實(shí)施了服務(wù)項(xiàng)目管理系統(tǒng),資源得到了充分利用,減少和避免了資金的使用不當(dāng).7) 縮短查詢時(shí)間.由于采用新技術(shù),大大縮短了查詢時(shí)間,推進(jìn)了管理水平.8) 減少人員.由于實(shí)施該系統(tǒng),在總體工作質(zhì)量上升的情況下,可減少一半管理人員,減少工資獎(jiǎng)金等支出.1.1.3 管理可行性各個(gè)方案的管理人員可以對(duì)管理方案進(jìn)行編輯,添加,刪除各培訓(xùn)管理人員可對(duì)培訓(xùn)方案進(jìn)行編輯,添加刪除,實(shí)現(xiàn)了管理上的角色分配,普通用戶只能對(duì)方案和培訓(xùn)課程進(jìn)行

5、查看2 軟件概述及設(shè)計(jì)方案服務(wù)項(xiàng)目管理系統(tǒng)系統(tǒng)應(yīng)用于it服務(wù)項(xiàng)目管理方面,采用了Hessian 、 HttpInvoker 、 XFire 、 Axis 等多種形式的遠(yuǎn)程調(diào)用技術(shù),實(shí)現(xiàn)了服務(wù)端生成骨架,對(duì)外暴露服務(wù);客戶端生成服務(wù)代理,訪問調(diào)用服務(wù)等技術(shù)特點(diǎn)及各功能模塊。在現(xiàn)代 J2EE 企業(yè)應(yīng)用系統(tǒng)中,存在著 Hessian 、 HttpInvoker 、 XFire 、 Axis 等多種形式的遠(yuǎn)程調(diào)用技術(shù)。盡管有 Spring 等框架對(duì)這些技術(shù)進(jìn)行了封裝,降低了使用的復(fù)雜度,但對(duì)普通程序員而言仍是復(fù)雜的至少需要要掌握這些技術(shù)的基礎(chǔ)知識(shí)。 無論使用那種技術(shù),其基本原理都是一樣的:服務(wù)端生成骨

6、架,對(duì)外暴露服務(wù);客戶端生成服務(wù)代理,訪問調(diào)用服務(wù)。通常情況下,生成服務(wù)代理的代價(jià)比較高昂,這也是我們第一次訪問遠(yuǎn)程服務(wù)速度比較慢的原因,為每個(gè)請(qǐng)求生成新的服務(wù)代理恐怕不是我們所期望的。更何況,如果采用這種方式,就要在代碼里針對(duì)各種不同的技術(shù)(如 XFire 、 HttpInvoker )編寫不同的服務(wù)生成和調(diào)用的處理代碼。不僅麻煩,而且容易出錯(cuò)。我想,沒有人愿意去直接操作各種框架技術(shù)的底層代碼,這并不是一個(gè)好注意! 作為一種替代方案,我們?cè)O(shè)計(jì)了一個(gè)“服務(wù)池”的功能,或者說“服務(wù)工廠”更貼切一點(diǎn)。針對(duì) HttpInvoker 、 XFire 、 Hessian 等各種遠(yuǎn)程調(diào)用技術(shù),抽象出一個(gè)“

7、遠(yuǎn)程服務(wù)池”(服務(wù)工廠)既 RemoteServicePool 接口。該接口提供了獲取服務(wù)及一些其他的輔助功能,并針對(duì) HttpInvoker 、 XFire 、 Hessian 等不同技術(shù)提供了相應(yīng)的具體實(shí)現(xiàn)。采用這種方式,開發(fā)人員只需在代碼中“注入” RemoteServicePool ,并以統(tǒng)一的方式(如 getService() )獲取實(shí)際的服務(wù),只是針對(duì)不同技術(shù)在配置上有些須差異而已。該技術(shù)的原理非常簡(jiǎn)單,在應(yīng)用啟動(dòng)之前把所有存在的服務(wù)提供者提供的服務(wù)都配置好,并為它們分配一個(gè)唯一的 ID 。應(yīng)用啟動(dòng)之后,框架會(huì)自動(dòng)生成和這些地址相對(duì)應(yīng)的服務(wù)代理( ServiceProxy ),這些

8、代理已經(jīng)是可用的服務(wù),服務(wù)獲取的細(xì)節(jié)被完全屏蔽掉,開發(fā)者只要知道如何從 RemoteServicePool 中獲取服務(wù)就可以了。該方案還為“雙向關(guān)聯(lián)”的系統(tǒng)服務(wù)提供了一個(gè)很好解決辦法??聪旅嬉粡垐D:如圖,系統(tǒng) B 和系統(tǒng) C 都調(diào)用系統(tǒng) A 進(jìn)行付款操作;同時(shí)系統(tǒng) A 要用遠(yuǎn)程服務(wù)向系統(tǒng) B 或系統(tǒng) C 進(jìn)行認(rèn)證操作,認(rèn)證操作的接口(契約)都是一樣的,業(yè)務(wù)邏輯可能有所差異。在這種情況下,配置在系統(tǒng) A 中的認(rèn)證服務(wù)就比較麻煩,因?yàn)橐鶕?jù)不同的系統(tǒng)調(diào)用認(rèn)證服務(wù),既從 B 過來的請(qǐng)求要訪問 B 的認(rèn)證服務(wù),從 C 過來的請(qǐng)求要訪問 C 的認(rèn)證服務(wù)。用服務(wù)池可以很好的解決這個(gè)問題,把兩個(gè)系統(tǒng)( B

9、、 C )提供的認(rèn)證服務(wù)地址都配置在同一個(gè)服務(wù)池中,根據(jù)不同的 ID (如 B 、 C )來決定使用那個(gè)系統(tǒng)的服務(wù)。盡管服務(wù)池解決了一些問題,在某種程度上降低了復(fù)雜度,但仍存在如下一些問題:        服務(wù)的運(yùn)行期動(dòng)態(tài)注冊(cè)        服務(wù)的自動(dòng)注入( IoC )        透明化服務(wù) ID 的傳遞 在服務(wù)池( ServicePool )概念的基礎(chǔ)上進(jìn)行擴(kuò)展,我們得出了如下的系

10、統(tǒng)模型:    在核心位置上是一個(gè)服務(wù)中心資源庫( ServiceRepository ),存儲(chǔ)了系統(tǒng)中用到的所有的遠(yuǎn)程服務(wù)。服務(wù)采取動(dòng)態(tài)注冊(cè)的機(jī)制,由對(duì)外提供的服務(wù)注冊(cè)器( ServiceRegister )提供服務(wù)注冊(cè)功能。外部系統(tǒng)可以實(shí)現(xiàn)該接口向資源中心注冊(cè)服務(wù)。提供了一個(gè)啟動(dòng)時(shí)運(yùn)行的注冊(cè)器,可以把靜態(tài)配置在系統(tǒng)中的服務(wù)都注冊(cè)進(jìn)來。        服務(wù)的生成、管理等均由服務(wù)中心自己維護(hù),委托服務(wù)代理生成器( ServiceProxyGenerator )完成服務(wù)的創(chuàng)建??梢葬槍?duì)現(xiàn)有的遠(yuǎn)程調(diào)用方式,如

11、 XFire,HttpInvoker,Hessian 等創(chuàng)建服務(wù)代理,也可以針對(duì)自己定義的遠(yuǎn)程調(diào)用方式創(chuàng)建服務(wù)代理,由 CustomServiceProxyGenerator 完成該功能。        一個(gè)服務(wù)模型包括 5 個(gè)因素:        服務(wù)接口 serviceClass         服務(wù) ID serviceId      

12、60;  服務(wù)類型 serviceType         服務(wù)地址 serviceUrl         附加屬性 props 查找一個(gè)服務(wù)需要兩個(gè)因素,一個(gè)是服務(wù)接口,另一個(gè)是服務(wù) ID 。這兩個(gè)因素共同決定了一個(gè)服務(wù),既服務(wù)中心內(nèi)部的“服務(wù) ID ”。通過這種方式,可以允許存在多個(gè) ID 相同但接口不同的服務(wù),也可以存在多個(gè)接口相同但 ID 不同的服務(wù)。 服務(wù) ID 的獲取是系統(tǒng)中一個(gè)關(guān)鍵的功能,這部分對(duì)程序員來說應(yīng)該是透明的,由系統(tǒng)自己維

13、護(hù)。相應(yīng)的提供了一個(gè)服務(wù) ID 提供者 (ServiceIdProvider) 接口,由實(shí)現(xiàn)該接口的子類完成服務(wù) ID 獲取功能(這是比較關(guān)鍵的地方,需要特殊考慮)。設(shè)計(jì)方案服務(wù)產(chǎn)品管理是可以在此模塊中維護(hù)公司所能提供的服務(wù)產(chǎn)品。方案人員可以瀏覽服務(wù)產(chǎn)品列表,并且在查詢區(qū)域輸入適當(dāng)?shù)牟樵儣l件進(jìn)行查詢。服務(wù)產(chǎn)品除了一些基本信息外,還包括服務(wù)產(chǎn)品文檔,負(fù)責(zé)人可以隨意為服務(wù)產(chǎn)品添加產(chǎn)品文檔。服務(wù)方案管理是商機(jī)在立項(xiàng)以后都會(huì)給客戶提供方案,此模塊就是用以維護(hù)服務(wù)方案數(shù)據(jù)的。服務(wù)方案除了基本信息以外還包括方案正文,方案PPT和方案預(yù)算表。方案人員除了方案預(yù)算表外,其它的數(shù)據(jù)都可以維護(hù)和查看。商務(wù)人員對(duì)所

14、有服務(wù)方案可見,并且可以查看和更新每個(gè)方案的方案預(yù)算表。公司領(lǐng)導(dǎo)可以查看所有服務(wù)方案。培訓(xùn)管理是培訓(xùn)負(fù)責(zé)人維護(hù)各自負(fù)責(zé)的培訓(xùn)課程(Course)。培訓(xùn)課程數(shù)據(jù)的查詢功能向全體員工開放,每個(gè)員工都可以查看公司所提供的培訓(xùn)課程,下載課程培訓(xùn)文檔。員工還可以登錄系統(tǒng)查看近期安排的培訓(xùn)日程,并且報(bào)名培訓(xùn)。當(dāng)培訓(xùn)結(jié)束后,培訓(xùn)負(fù)責(zé)人可以給每個(gè)學(xué)員維護(hù)他們的完成狀態(tài)(參加,或缺席)。軟件構(gòu)架圖功能結(jié)構(gòu)分析服務(wù)項(xiàng)目管理系統(tǒng)服務(wù)產(chǎn)品管理服務(wù)方案管理培訓(xùn)管理服務(wù)產(chǎn)品詳情服務(wù)產(chǎn)品的修改培訓(xùn)課程顯示培訓(xùn)課程的修改角色分配培訓(xùn)課程查看培訓(xùn)課程的修改3 針對(duì)軟件的各功能模塊做具體的設(shè)計(jì)描述及附注相關(guān)設(shè)計(jì)結(jié)果3.1 服務(wù)產(chǎn)

15、品管理3.1.1 功能簡(jiǎn)介每個(gè)方案人員可以在此模塊中維護(hù)公司所能提供的服務(wù)產(chǎn)品。方案人員可以瀏覽服務(wù)產(chǎn)品列表,并且在查詢區(qū)域輸入適當(dāng)?shù)牟樵儣l件進(jìn)行查詢。針對(duì)查詢結(jié)果,還可以對(duì)服務(wù)產(chǎn)品數(shù)據(jù)進(jìn)行添加,刪除,修改等操作,每個(gè)服務(wù)產(chǎn)品都會(huì)有一個(gè)負(fù)責(zé)人,每個(gè)服務(wù)產(chǎn)品只能由負(fù)責(zé)人進(jìn)行刪除或修改,其它人員只能進(jìn)行查看。服務(wù)產(chǎn)品除了一些基本信息外,還包括服務(wù)產(chǎn)品文檔,負(fù)責(zé)人可以隨意為服務(wù)產(chǎn)品添加產(chǎn)品文檔。服務(wù)產(chǎn)品應(yīng)該同時(shí)向所有公司員工開放,全員可以查看并學(xué)習(xí)。3.1.2 功能說明Ø 服務(wù)產(chǎn)品詳情Ø 服務(wù)產(chǎn)品的管理,添加,刪除,修改3.1.3 數(shù)據(jù)表設(shè)計(jì)表名:s_service_produc

16、t服務(wù)產(chǎn)品顯示名稱字段名稱字段類型NULLPK/FK備注產(chǎn)品編號(hào)service_product_idVARCHAR(10)NOT NULLPK應(yīng)用程序賦值(4產(chǎn)品類別字母3位流水號(hào))產(chǎn)品名稱service_solution_nameVARCHAR(50)NOT NULL產(chǎn)品類別service_product_typeVARCHAR(20)NOT NULL產(chǎn)品負(fù)責(zé)人service_product_ownerVARCHAR(5)NOT NULLFK( s_employee: emp_no )產(chǎn)品審核人service_product_approverVARCHAR(5)NULLFK( s_emplo

17、yee: emp_no )創(chuàng)建日期create_datedateNOT NULL備注notationVARCHAR(100)NULL3.2 服務(wù)方案管理3.2.1 功能簡(jiǎn)介每個(gè)商機(jī)在立項(xiàng)以后都會(huì)給客戶提供方案,此模塊就是用以維護(hù)服務(wù)方案數(shù)據(jù)的。方案人員可以添加,刪除,修改服務(wù)方案,并且可以瀏覽和查詢已有的服務(wù)方案。服務(wù)方案除了基本信息以外還包括方案正文,方案PPT和方案預(yù)算表。方案人員除了方案預(yù)算表外,其它的數(shù)據(jù)都可以維護(hù)和查看。方案總監(jiān)同樣可以對(duì)服務(wù)方案數(shù)據(jù)進(jìn)行增加,刪除,修改和查詢,并且對(duì)每個(gè)服務(wù)方案的所有屬性可見,包括方案預(yù)算表。商務(wù)人員對(duì)所有服務(wù)方案可見,并且可以查看和更新每個(gè)方案的方

18、案預(yù)算表。公司領(lǐng)導(dǎo)可以查看所有服務(wù)方案。3.2.2 功能說明Ø 客戶方案的提供Ø 管理員對(duì)客戶方案的修改Ø 不同人對(duì)方案的查看3.2.3 數(shù)據(jù)表設(shè)計(jì)表名:s_service_solution服務(wù)方案顯示名稱字段名稱字段類型NULLPK/FK備注方案編號(hào)service_solution_idVARCHAR(10)NOT NULLPK與商機(jī)編號(hào)一致方案名稱service_solution_nameVARCHAR(50)NOT NULL方案日期service_solution_datedateNOT NULL方案負(fù)責(zé)人service_solution_ownerVARC

19、HAR(5)NOT NULLFK( s_employee: emp_no )方案審核人service_solution_approverVARCHAR(5)NULLFK( s_employee: emp_no )方案滿意度content_degree_saleintNULL上級(jí)滿意度content_degree_leaderintNULL方案正文service_solution_fileintNULLFK( s_common_file: file_id )方案PPTservice_solution_pptintNULLFK( s_common_file: file_id )項(xiàng)目預(yù)算表budge

20、t_fileintNULLFK( s_common_file: file_id )項(xiàng)目人員成本預(yù)算budget_amountintNOT NULL默認(rèn)值:03.3 培訓(xùn)管理3.3.1 功能簡(jiǎn)介培訓(xùn)負(fù)責(zé)人維護(hù)各自負(fù)責(zé)的培訓(xùn)課程(Course)。在培訓(xùn)課程維護(hù)界面,培訓(xùn)負(fù)責(zé)人可以增加,刪除,修改,瀏覽和查詢培訓(xùn)課程。培訓(xùn)負(fù)責(zé)人不能訪問其他培訓(xùn)負(fù)責(zé)人負(fù)責(zé)的培訓(xùn)課程。除此之外,培訓(xùn)課程數(shù)據(jù)的查詢功能向全體員工開放,每個(gè)員工都可以查看公司所提供的培訓(xùn)課程,下載課程培訓(xùn)文檔。培訓(xùn)負(fù)責(zé)人還可以安排具體的培訓(xùn)日程。每個(gè)培訓(xùn)日程包括培訓(xùn)課程,報(bào)名截止時(shí)間,開課時(shí)間,報(bào)名人數(shù),培訓(xùn)地點(diǎn)等屬性。培訓(xùn)負(fù)責(zé)人可以創(chuàng)建,

21、刪除,修改,瀏覽和查詢培訓(xùn)日程。同時(shí)員工還可以登錄系統(tǒng)查看近期安排的培訓(xùn)日程,并且報(bào)名培訓(xùn)。如果尚未到達(dá)報(bào)名截止日期,允許員工撤銷培訓(xùn)報(bào)名。培訓(xùn)負(fù)責(zé)人還可以管理培訓(xùn)日程的進(jìn)度:培訓(xùn)負(fù)責(zé)人可以查看報(bào)名學(xué)員的列表;到了培訓(xùn)報(bào)名截止日期時(shí),培訓(xùn)負(fù)責(zé)人可以給每個(gè)員工“發(fā)送培訓(xùn)通知”;當(dāng)培訓(xùn)結(jié)束后,培訓(xùn)負(fù)責(zé)人可以給每個(gè)學(xué)員維護(hù)他們的完成狀態(tài)(參加,或缺席)。3.3.2 功能說明Ø 培訓(xùn)課程信息的查看Ø 培訓(xùn)課程信息的修改Ø 培訓(xùn)負(fù)責(zé)人的特權(quán)3.3.3 數(shù)據(jù)表設(shè)計(jì)表名:s_course培訓(xùn)課程顯示名稱字段名稱字段類型NULLPK/FK備注課程編號(hào)course_idVARCHA

22、R(10)NOT NULLPK應(yīng)用程序賦值(1位課程類別3位流水號(hào))課程類別course_typeVARCHAR(10)NOT NULL課程名稱course_nameVARCHAR(50)NOT NULL培訓(xùn)方式training_modeVARCHAR(30)NOT NULL課程創(chuàng)建日期course_create_datedateNOT NULL人均培訓(xùn)費(fèi)用cost_per_traineeintNOT NULL課程講師course_trainerVARCHAR(5)NULLFK( s_employee: emp_no )培訓(xùn)負(fù)責(zé)人course_ownerVARCHAR(5)NOT NULLFK

23、( s_employee: emp_no )教材material_idintNULLFK( s_common_file: file_id )表名:s_lesson培訓(xùn)日程顯示名稱字段名稱字段類型NULLPK/FK備注培訓(xùn)日程IDlesson_idVARCHAR(20)NOT NULLPK應(yīng)用程序賦值(4位課程編號(hào)3位流水號(hào) )課程編號(hào)course_idVARCHAR(10)NOT NULLFK( s_course: course_id )報(bào)名截止時(shí)間sign_up_end_datedateNOT NULL報(bào)名人數(shù)intended_attendanceintNOT NULL默認(rèn)值:0已報(bào)名人數(shù)r

24、eal_attendanceintNOT NULL默認(rèn)值:0開課時(shí)間lesson_begin_datedateNOT NULL結(jié)束時(shí)間lesson_end_datedateNOT NULL授課地點(diǎn)lesson_placeVARCHAR(50)NOT NULL課程講師lesson_trainerVARCHAR(5)NULLFK( s_employee: emp_no )培訓(xùn)負(fù)責(zé)人lesson_ownerVARCHAR(5)NOT NULLFK( s_employee: emp_no )備注notationVARCHAR(100)NULL表名:s_lesson_trainee培訓(xùn)名單顯示名稱字段名

25、稱字段類型NULLPK/FK備注培訓(xùn)學(xué)員IDlesson_trainee_idintNOT NULLPK數(shù)據(jù)庫自動(dòng)增長ID培訓(xùn)日程IDlesson_idVARCHAR(20)NOT NULLFK( s_lesson: lesson_id )培訓(xùn)負(fù)責(zé)人trainee_nointNOT NULLFK( s_employee: emp_no )完成情況feedbackVARCHAR(100)NULL代碼:package com.lenovoai.nicemis.web.action;import org.springframework.web.struts.ActionSupport;import

26、org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForm;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.context.Applicat

27、ionContext;import com.lenovoai.nicemis.service.*;import com.lenovoai.nicemis.model.*;import com.lenovoai.nicemis.model.security.*;import com.lenovoai.nicemis.util.*;import java.util.*;/* * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p>

28、; * <p>Company: </p> * author not attributable * version 1.0 */public class FindServiceProductsForAllAction extends ActionSupport public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception /collect param

29、eters for business logic HttpSession httpSession = request.getSession(true); SecurityDetails sd = (SecurityDetails) httpSession.getAttribute( SecurityDetails.SECURITY_DETAILS_KEY); String serviceProductId = (String) request.getParameter("serviceProductId"); String serviceProductName = (Str

30、ing) request.getParameter("serviceProductName"); String serviceProductType = (String) request.getParameter("serviceProductType"); String serviceProductOwnerName = (String) request.getParameter("serviceProductOwnerName"); String year = (String) request.getParameter("

31、;year"); int iPageSize = getPageSize(request); int iPageNo = getPageNo(request); ServiceProductQueryObj queryObj = new ServiceProductQueryObj(); queryObj.setCurrentUserEmpNo( sd.getUserInfo().getEmpNo() ); queryObj.setServiceProductId(serviceProductId); queryObj.setServiceProductName(servicePro

32、ductName); queryObj.setServiceProductType(serviceProductType); queryObj.setServiceProductOwnerName(serviceProductOwnerName); queryObj.setYear( year ); ApplicationContext context = getWebApplicationContext(); IServiceProductService serviceProductService = (IServiceProductService) context.getBean( &qu

33、ot;serviceProductService"); PageInfo pageInfo = new PageInfo(); try pageInfo = serviceProductService.findServiceProductsForAll(iPageSize, iPageNo, queryObj); catch (Exception ex) request.setAttribute("feedback", ex.getMessage(); request.setAttribute("pageInfo", pageInfo); re

34、turn mapping.findForward("success"); int getPageSize(HttpServletRequest request) int iPageSize = 0; String strPageSize = null; strPageSize = (String) request.getParameter("pageSize"); if (strPageSize = null | strPageSize.equals("") iPageSize = Constant.getConPagesize();

35、 / else try iPageSize = Integer.parseInt(strPageSize); catch (Exception ex) iPageSize = Constant.getConPagesize(); / System.out.println( "Developer Debug Log: pageSize parameter is incorrect! "); return iPageSize; int getPageNo(HttpServletRequest request) int iPageNo = 0; String strPageNo

36、= null; strPageNo = (String) request.getParameter("pageNo"); if (strPageNo = null | strPageNo.equals("") iPageNo = 1; / else try iPageNo = Integer.parseInt(strPageNo); catch (Exception ex) iPageNo = 1; / System.out.println( "Developer Debug Log: pageNo parameter is incorrect

37、! "); return iPageNo; 維護(hù)服務(wù)方案(方案人員)package com.lenovoai.nicemis.web.action;import org.springframework.web.struts.ActionSupport;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForm;import javax.servlet.http.HttpServ

38、letRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.context.ApplicationContext;import com.lenovoai.nicemis.service.*;import com.lenovoai.nicemis.model.*;import com.lenovoai.nicemis.model.security.*;import com.lenovoai.nicemis.util

39、.*;import java.util.*;/* * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * author not attributable * version 1.0 */public class FindServiceSolutionsForSolutionerAction extends ActionSupport public Actio

40、nForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception /collect parameters for business logic HttpSession httpSession = request.getSession(true); SecurityDetails sd = (SecurityDetails) httpSession.getAttribute( SecurityDeta

41、ils.SECURITY_DETAILS_KEY); String bizoppId = (String) request.getParameter("bizoppId"); String serviceSolutionName = (String) request.getParameter("serviceSolutionName"); String contentDegreeLeader = (String) request.getParameter("contentDegreeLeader"); String contentDe

42、greeSale = (String) request.getParameter("contentDegreeSale"); String serviceSolutionOwnerName = (String) request.getParameter("serviceSolutionOwnerName"); String year = (String) request.getParameter("year"); int iPageSize = getPageSize(request); int iPageNo = getPageNo

43、(request); ServiceSolutionQueryObj queryObj = new ServiceSolutionQueryObj(); queryObj.setCurrentUserEmpNo( sd.getUserInfo().getEmpNo() ); queryObj.setBizoppId(bizoppId); queryObj.setServiceSolutionName(serviceSolutionName); queryObj.setServiceSolutionOwnerName(serviceSolutionOwnerName); queryObj.set

44、Year( year ); queryObj.setContentDegreeLeader(contentDegreeLeader); queryObj.setContentDegreeSale(contentDegreeSale); ApplicationContext context = getWebApplicationContext(); IServiceSolutionService serviceSolutionService = (IServiceSolutionService) context.getBean( "serviceSolutionService"

45、;); PageInfo pageInfo = new PageInfo(); try pageInfo = serviceSolutionService.findServiceSolutionsForSolutioner(iPageSize, iPageNo, queryObj); catch (Exception ex) request.setAttribute("feedback", ex.getMessage(); request.setAttribute("pageInfo", pageInfo); return mapping.findFor

46、ward("success"); int getPageSize(HttpServletRequest request) int iPageSize = 0; String strPageSize = null; strPageSize = (String) request.getParameter("pageSize"); if (strPageSize = null | strPageSize.equals("") iPageSize = Constant.getConPagesize(); / else try iPageSiz

47、e = Integer.parseInt(strPageSize); catch (Exception ex) iPageSize = Constant.getConPagesize(); / System.out.println( "Developer Debug Log: pageSize parameter is incorrect! "); return iPageSize; int getPageNo(HttpServletRequest request) int iPageNo = 0; String strPageNo = null; strPageNo =

48、(String) request.getParameter("pageNo"); if (strPageNo = null | strPageNo.equals("") iPageNo = 1; / else try iPageNo = Integer.parseInt(strPageNo); catch (Exception ex) iPageNo = 1; / System.out.println( "Developer Debug Log: pageNo parameter is incorrect! "); return iP

49、ageNo; 查詢?nèi)颗嘤?xùn)課程package com.lenovoai.nicemis.web.action;import org.springframework.web.struts.ActionSupport;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForm;import javax.servlet.http.HttpServletRequest;import javax.

50、servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.context.ApplicationContext;import com.lenovoai.nicemis.service.*;import com.lenovoai.nicemis.model.*;import com.lenovoai.nicemis.util.*;import java.util.*;import com.lenovoai.nicemis.model.security.Secu

51、rityDetails;/* * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * author not attributable * version 1.0 */public class FindContractsForAllAction extends ActionSupport public FindContractsForAllAction() public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception /collect parameters for business logic String contractId = (String) request.getParameter("contractId"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論