版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE PAGE 48服務(wù)項(xiàng)目管理系統(tǒng) 設(shè)計(jì)說(shuō)明書(shū)TOC o 1-3 h z u HYPERLINK l _Toc274656603 1 軟件背景 PAGEREF _Toc274656603 h 1 HYPERLINK l _Toc274656604 1.1 可行性分析 PAGEREF _Toc274656604 h 2 HYPERLINK l _Toc274656605 1.1.1 功能可行性 PAGEREF _Toc274656605 h 2 HYPERLINK l _Toc274656606 1.1.2 經(jīng)濟(jì)可行性 PAGEREF _Toc274656606 h 2 HYPERLINK
2、 l _Toc274656607 1.1.3 管理可行性 PAGEREF _Toc274656607 h 2 HYPERLINK l _Toc274656608 2 軟件概述及設(shè)計(jì)方案 PAGEREF _Toc274656608 h 3 HYPERLINK l _Toc274656609 軟件構(gòu)架圖 PAGEREF _Toc274656609 h 7 HYPERLINK l _Toc274656610 功能結(jié)構(gòu)分析 PAGEREF _Toc274656610 h 7 HYPERLINK l _Toc274656611 3 針對(duì)軟件的各功能模塊做具體的設(shè)計(jì)描述及附注相關(guān)設(shè)計(jì)結(jié)果 PAGEREF
3、_Toc274656611 h 8 HYPERLINK l _Toc274656612 3.1 服務(wù)產(chǎn)品管理 PAGEREF _Toc274656612 h 8 HYPERLINK l _Toc274656613 3.1.1 功能簡(jiǎn)介 PAGEREF _Toc274656613 h 8 HYPERLINK l _Toc274656614 3.1.2 功能說(shuō)明 PAGEREF _Toc274656614 h 9 HYPERLINK l _Toc274656615 3.1.3 數(shù)據(jù)表設(shè)計(jì) PAGEREF _Toc274656615 h 9 HYPERLINK l _Toc274656616 3.2
4、 服務(wù)方案管理 PAGEREF _Toc274656616 h 9 HYPERLINK l _Toc274656617 3.2.1 功能簡(jiǎn)介 PAGEREF _Toc274656617 h 9 HYPERLINK l _Toc274656618 3.2.2 功能說(shuō)明 PAGEREF _Toc274656618 h 10 HYPERLINK l _Toc274656619 3.2.3 數(shù)據(jù)表設(shè)計(jì) PAGEREF _Toc274656619 h 10 HYPERLINK l _Toc274656620 3.3 培訓(xùn)管理 PAGEREF _Toc274656620 h 11 HYPERLINK l
5、_Toc274656621 3.3.1 功能簡(jiǎn)介 PAGEREF _Toc274656621 h 11 HYPERLINK l _Toc274656622 3.3.2 功能說(shuō)明 PAGEREF _Toc274656622 h 11 HYPERLINK l _Toc274656623 3.3.3 數(shù)據(jù)表設(shè)計(jì) PAGEREF _Toc274656623 h 11軟件背景系統(tǒng)的背景是:近年來(lái),隨著it服務(wù)行業(yè)的發(fā)展,對(duì)服務(wù)項(xiàng)目管理方面產(chǎn)生了很大需求,針對(duì)此需求提出開(kāi)發(fā)服務(wù)項(xiàng)目管理系統(tǒng)的必要,可以實(shí)現(xiàn)出更多的用途或滿足更多需要。與原有技術(shù)相比所體現(xiàn)出方便快捷優(yōu)勢(shì)。服務(wù)項(xiàng)目管理系統(tǒng)是服務(wù)項(xiàng)目管理軟件的通
6、俗化名稱,服務(wù)項(xiàng)目管理系統(tǒng)是服務(wù)產(chǎn)品管理、服務(wù)方案管理,培訓(xùn)管理統(tǒng)計(jì)銷售業(yè)績(jī)的先進(jìn)工具,適合企業(yè)管理部門(mén)辦公使用,協(xié)助方案經(jīng)理和方案人員快速管理客戶、服務(wù)和業(yè)務(wù)的重要數(shù)據(jù)。服務(wù)項(xiàng)目管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。可行性分析功能可行性系統(tǒng)完整性:整個(gè)服務(wù)項(xiàng)目管理系統(tǒng)具備系統(tǒng)設(shè)計(jì)的科學(xué)合理性,方案管理信息錄入,修改,刪除及學(xué)生成績(jī)的查詢等功能符合學(xué)校對(duì)學(xué)生的管理要求,滿足了相關(guān)人員對(duì)信息管理的要求,適用于復(fù)雜的學(xué)生管理
7、,因而達(dá)到了設(shè)計(jì)任務(wù)的要求.系統(tǒng)的可靠性:該系統(tǒng)可靠性高,能無(wú)故障正常的工作,當(dāng)出現(xiàn)異常情況是還采取了一些防止系統(tǒng)破壞的方法和措施,如密碼保存,數(shù)據(jù)備份等.系統(tǒng)的效率:與舊系統(tǒng)相比,減輕了許多重復(fù)的繁瑣的勞動(dòng)和手工計(jì)算量,抄寫(xiě)量,在對(duì)學(xué)生成績(jī)進(jìn)行評(píng)價(jià)和統(tǒng)計(jì)方面效率提高了不少.系統(tǒng)的工作質(zhì)量:學(xué)生管理系統(tǒng)所提供數(shù)據(jù)的精確度,輸出結(jié)果的易讀性都能達(dá)到用戶要求,使用方便,使學(xué)生管理工作變得輕松,有序而有效.系統(tǒng)的靈活性:系統(tǒng)的環(huán)境是不斷變化的,因而該學(xué)生管理系統(tǒng)具有一定的擴(kuò)充性,修改信息方便簡(jiǎn)易,能夠、適應(yīng)環(huán)境的變化.經(jīng)濟(jì)可行性減少資金占用.由于實(shí)施了服務(wù)項(xiàng)目管理系統(tǒng),資源得到了充分利用,減少和避免
8、了資金的使用不當(dāng).縮短查詢時(shí)間.由于采用新技術(shù),大大縮短了查詢時(shí)間,推進(jìn)了管理水平.減少人員.由于實(shí)施該系統(tǒng),在總體工作質(zhì)量上升的情況下,可減少一半管理人員,減少工資獎(jiǎng)金等支出.管理可行性各個(gè)方案的管理人員可以對(duì)管理方案進(jìn)行編輯,添加,刪除各培訓(xùn)管理人員可對(duì)培訓(xùn)方案進(jìn)行編輯,添加刪除,實(shí)現(xiàn)了管理上的角色分配,普通用戶只能對(duì)方案和培訓(xùn)課程進(jìn)行查看軟件概述及設(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ù)代理,訪問(wèn)調(diào)用服務(wù)等技術(shù)特點(diǎn)及各
9、功能模塊。在現(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í)。 無(wú)論使用那種技術(shù),其基本原理都是一樣的:服務(wù)端生成骨架,對(duì)外暴露服務(wù);客戶端生成服務(wù)代理,訪問(wèn)調(diào)用服務(wù)。通常情況下,生成服務(wù)代理的代價(jià)比較高昂,這也是我們第一次訪問(wèn)遠(yuǎn)程服務(wù)速度比較慢的原因,為每個(gè)請(qǐng)求生成新的服務(wù)代理恐怕不是我們所期望的。更何況,如果采用這種方式,就要在代碼里針對(duì)各種不同的技術(shù)(如 XFire 、
10、 HttpInvoker )編寫(xiě)不同的服務(wù)生成和調(diào)用的處理代碼。不僅麻煩,而且容易出錯(cuò)。我想,沒(méi)有人愿意去直接操作各種框架技術(shù)的底層代碼,這并不是一個(gè)好注意! 作為一種替代方案,我們?cè)O(shè)計(jì)了一個(gè)“服務(wù)池”的功能,或者說(shuō)“服務(wù)工廠”更貼切一點(diǎn)。針對(duì) HttpInvoker 、 XFire 、 Hessian 等各種遠(yuǎn)程調(diào)用技術(shù),抽象出一個(gè)“遠(yuǎn)程服務(wù)池”(服務(wù)工廠)既 RemoteServicePool 接口。該接口提供了獲取服務(wù)及一些其他的輔助功能,并針對(duì) HttpInvoker 、 XFire 、 Hessian 等不同技術(shù)提供了相應(yīng)的具體實(shí)現(xiàn)。采用這種方式,開(kāi)發(fā)人員只需在代碼中“注入” Rem
11、oteServicePool ,并以統(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 ),這些代理已經(jīng)是可用的服務(wù),服務(wù)獲取的細(xì)節(jié)被完全屏蔽掉,開(kāi)發(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í)系
12、統(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 過(guò)來(lái)的請(qǐng)求要訪問(wèn) B 的認(rèn)證服務(wù),從 C 過(guò)來(lái)的請(qǐng)求要訪問(wèn) C 的認(rèn)證服務(wù)。用服務(wù)池可以很好的解決這個(gè)問(wèn)題,把兩個(gè)系統(tǒng)( B 、 C )提供的認(rèn)證服務(wù)地址都配置在同一個(gè)服務(wù)池中,根據(jù)不同的 ID (如 B 、 C )來(lái)決定使用那個(gè)系統(tǒng)的服務(wù)。盡管服務(wù)池解決了一些問(wèn)題,在某種程度上降低了復(fù)雜度,但仍存在如下一些問(wèn)題: 服務(wù)的運(yùn)行期動(dòng)態(tài)注冊(cè) 服務(wù)的自動(dòng)注入( IoC ) 透明化服務(wù) ID
13、的傳遞 在服務(wù)池( ServicePool )概念的基礎(chǔ)上進(jìn)行擴(kuò)展,我們得出了如下的系統(tǒng)模型: 在核心位置上是一個(gè)服務(wù)中心資源庫(kù)( 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)來(lái)。 服務(wù)的生成、管理等均由服務(wù)中心自己維護(hù),委托服務(wù)代理生成器( ServiceProxyGenerator )完成服務(wù)的創(chuàng)建??梢葬槍?duì)現(xiàn)有的遠(yuǎn)程調(diào)用方式,如 XFire,HttpI
14、nvoker,Hessian 等創(chuàng)建服務(wù)代理,也可以針對(duì)自己定義的遠(yuǎn)程調(diào)用方式創(chuàng)建服務(wù)代理,由 CustomServiceProxyGenerator完成該功能。 一個(gè)服務(wù)模型包括 5 個(gè)因素: 服務(wù)接口 serviceClass 服務(wù) ID serviceId 服務(wù)類型 serviceType 服務(wù)地址 serviceUrl 附加屬性 props 查找一個(gè)服務(wù)需要兩個(gè)因素,一個(gè)是服務(wù)接口,另一個(gè)是服務(wù) ID 。這兩個(gè)因素共同決定了一個(gè)服務(wù),既服務(wù)中心內(nèi)部的“服務(wù) ID ”。通過(guò)這種方式,可以允許存在多個(gè) ID 相同但接口不同的服務(wù),也可以存在多個(gè)接口相同但 ID 不同的服務(wù)。 服務(wù) ID 的
15、獲取是系統(tǒng)中一個(gè)關(guān)鍵的功能,這部分對(duì)程序員來(lái)說(shuō)應(yīng)該是透明的,由系統(tǒng)自己維護(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ù)
16、算表。方案人員除了方案預(yù)算表外,其它的數(shù)據(jù)都可以維護(hù)和查看。商務(wù)人員對(duì)所有服務(wù)方案可見(jiàn),并且可以查看和更新每個(gè)方案的方案預(yù)算表。公司領(lǐng)導(dǎo)可以查看所有服務(wù)方案。培訓(xùn)管理是培訓(xùn)負(fù)責(zé)人維護(hù)各自負(fù)責(zé)的培訓(xùn)課程(Course)。培訓(xùn)課程數(shù)據(jù)的查詢功能向全體員工開(kāi)放,每個(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ù)項(xiàng)目管理系統(tǒng)服務(wù)產(chǎn)品管理服務(wù)方案管理培訓(xùn)管理服務(wù)產(chǎn)品詳情服務(wù)產(chǎn)品的修改培訓(xùn)課程顯示培訓(xùn)課程的修改角色分配培訓(xùn)課程查
17、看培訓(xùn)課程的修改針對(duì)軟件的各功能模塊做具體的設(shè)計(jì)描述及附注相關(guān)設(shè)計(jì)結(jié)果服務(wù)產(chǎn)品管理功能簡(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í)向所有公司員工開(kāi)放,全員可以查看并學(xué)習(xí)。功能說(shuō)明服務(wù)產(chǎn)品詳情服務(wù)產(chǎn)品的管理,添加,刪除,修改數(shù)據(jù)表設(shè)計(jì)表名:s_service_
18、product服務(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
19、_employee: emp_no )創(chuàng)建日期create_datedateNOT NULL備注notationVARCHAR(100)NULL服務(wù)方案管理功能簡(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ù)方案的所有屬性可見(jiàn),包括方案預(yù)算表。商務(wù)人員對(duì)所有服務(wù)方案可見(jiàn),并且可以查看和更新每個(gè)方案的方案預(yù)算表
20、。公司領(lǐng)導(dǎo)可以查看所有服務(wù)方案。功能說(shuō)明客戶方案的提供管理員對(duì)客戶方案的修改不同人對(duì)方案的查看數(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_ownerVARCHAR(5)NOT NULLFK( s_employee: emp_no
21、)方案審核人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ù)算表budget_fileintNULLFK( s_common_file: file_
22、id )項(xiàng)目人員成本預(yù)算budget_amountintNOT NULL默認(rèn)值:0培訓(xùn)管理功能簡(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é)人不能訪問(wèn)其他培訓(xùn)負(fù)責(zé)人負(fù)責(zé)的培訓(xùn)課程。除此之外,培訓(xùn)課程數(shù)據(jù)的查詢功能向全體員工開(kāi)放,每個(gè)員工都可以查看公司所提供的培訓(xùn)課程,下載課程培訓(xùn)文檔。培訓(xùn)負(fù)責(zé)人還可以安排具體的培訓(xùn)日程。每個(gè)培訓(xùn)日程包括培訓(xùn)課程,報(bào)名截止時(shí)間,開(kāi)課時(shí)間,報(bào)名人數(shù),培訓(xùn)地點(diǎn)等屬性。培訓(xùn)負(fù)責(zé)人可以創(chuàng)建,刪除,修改,瀏覽和查詢培訓(xùn)日程。同時(shí)員工還可以登錄系統(tǒng)查看近期安排的培訓(xùn)日程,并且報(bào)名培訓(xùn)。如
23、果尚未到達(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)(參加,或缺席)。功能說(shuō)明培訓(xùn)課程信息的查看培訓(xùn)課程信息的修改培訓(xùn)負(fù)責(zé)人的特權(quán)數(shù)據(jù)表設(shè)計(jì)表名:s_course培訓(xùn)課程顯示名稱字段名稱字段類型NULLPK/FK備注課程編號(hào)course_idVARCHAR(10)NOT NULLPK應(yīng)用程序賦值(1位課程類別3位流水號(hào))課程類別course_typeVARCHAR(10)NOT NULL課程名稱course_n
24、ameVARCHAR(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( s_employee: emp_no )教材material_idintNULLFK( s_common_file: file_id )表名:s_lesso
25、n培訓(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ù)real_attendanceintNOT NULL默認(rèn)值:0開(kāi)課時(shí)間lesson_begin_datedateNOT NULL結(jié)束時(shí)間lesson_end_dat
26、edateNOT 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)名單顯示名稱字段名稱字段類型NULLPK/FK備注培訓(xùn)學(xué)員IDlesson_trainee_idintNOT NULLPK數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng)ID培訓(xùn)日程IDlesson_idVARCH
27、AR(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 org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapp
28、ing;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.ApplicationContext;import com.lenovoai.nicemis.service.*;import com.lenovoai.nicemis.mode
29、l.*;import com.lenovoai.nicemis.model.security.*;import com.lenovoai.nicemis.util.*;import java.util.*;/* * Title: * Description: * Copyright: Copyright (c) 2005 * Company: * author not attributable * version 1.0 */public class FindServiceProductsForAllAction extends ActionSupport public ActionForwa
30、rd 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( SecurityDetails.SE
31、CURITY_DETAILS_KEY); String serviceProductId = (String) request.getParameter(serviceProductId); String serviceProductName = (String) request.getParameter(serviceProductName); String serviceProductType = (String) request.getParameter(serviceProductType); String serviceProductOwnerName = (String) requ
32、est.getParameter(serviceProductOwnerName); String year = (String) request.getParameter(year); int iPageSize = getPageSize(request); int iPageNo = getPageNo(request); ServiceProductQueryObj queryObj = new ServiceProductQueryObj(); queryObj.setCurrentUserEmpNo( sd.getUserInfo().getEmpNo() ); queryObj.
33、setServiceProductId(serviceProductId); queryObj.setServiceProductName(serviceProductName); queryObj.setServiceProductType(serviceProductType); queryObj.setServiceProductOwnerName(serviceProductOwnerName); queryObj.setYear( year ); ApplicationContext context = getWebApplicationContext(); IServiceProd
34、uctService serviceProductService = (IServiceProductService) context.getBean( serviceProductService); PageInfo pageInfo = new PageInfo(); try pageInfo = serviceProductService.findServiceProductsForAll(iPageSize, iPageNo, queryObj); catch (Exception ex) request.setAttribute(feedback, ex.getMessage();
35、request.setAttribute(pageInfo, pageInfo); return 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.getConPag
36、esize(); / 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 = nu
37、ll; 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! ); return iPageNo; 維護(hù)服務(wù)方案(方案人員)p
38、ackage 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.servlet.http.Htt
39、pServletResponse;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.*;import java.util.*;/* * Title: * Desc
40、ription: * Copyright: Copyright (c) 2005 * Company: * author not attributable * version 1.0 */public class FindServiceSolutionsForSolutionerAction extends ActionSupport public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) thro
41、ws Exception /collect parameters for business logic HttpSession httpSession = request.getSession(true); SecurityDetails sd = (SecurityDetails) httpSession.getAttribute( SecurityDetails.SECURITY_DETAILS_KEY); String bizoppId = (String) request.getParameter(bizoppId); String serviceSolutionName = (Str
42、ing) request.getParameter(serviceSolutionName); String contentDegreeLeader = (String) request.getParameter(contentDegreeLeader); String contentDegreeSale = (String) request.getParameter(contentDegreeSale); String serviceSolutionOwnerName = (String) request.getParameter(serviceSolutionOwnerName); Str
43、ing year = (String) request.getParameter(year); int iPageSize = getPageSize(request); int iPageNo = getPageNo(request); ServiceSolutionQueryObj queryObj = new ServiceSolutionQueryObj(); queryObj.setCurrentUserEmpNo( sd.getUserInfo().getEmpNo() ); queryObj.setBizoppId(bizoppId); queryObj.setServiceSo
44、lutionName(serviceSolutionName); queryObj.setServiceSolutionOwnerName(serviceSolutionOwnerName); queryObj.setYear( year ); queryObj.setContentDegreeLeader(contentDegreeLeader); queryObj.setContentDegreeSale(contentDegreeSale); ApplicationContext context = getWebApplicationContext(); IServiceSolution
45、Service serviceSolutionService = (IServiceSolutionService) context.getBean( serviceSolutionService); PageInfo pageInfo = new PageInfo(); try pageInfo = serviceSolutionService.findServiceSolutionsForSolutioner(iPageSize, iPageNo, queryObj); catch (Exception ex) request.setAttribute(feedback, ex.getMe
46、ssage(); request.setAttribute(pageInfo, pageInfo); return 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.
47、getConPagesize(); / 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 strPa
48、geNo = 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! ); return iPageNo; 查詢?nèi)?/p>
49、培訓(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.servlet.htt
50、p.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.SecurityDetails
51、;/* * Title: * Description: * Copyright: Copyright (c) 2005 * Company: * author not attributable * version 1.0 */public class FindContractsForAllAction extends ActionSupport public FindContractsForAllAction() public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req
52、uest, HttpServletResponse response) throws Exception /collect parameters for business logic String contractId = (String) request.getParameter(contractId); String bizoppId = (String) request.getParameter(bizoppId); String customerName = (String) request.getParameter(customerName); String projectName
53、= (String) request.getParameter(projectName); String orderRevenueOneSign = (String) request.getParameter(orderRevenueOneSign); String orderRevenueOne = (String) request.getParameter(orderRevenueOne); String orderRevenueTwoSign = (String) request.getParameter(orderRevenueTwoSign); String orderRevenue
54、Two = (String) request.getParameter(orderRevenueTwo); String contractDate = (String) request.getParameter(contractDate); String deptNo = (String) request.getParameter(deptNo); int iPageSize = getPageSize(request); int iPageNo = getPageNo(request); ContractQueryObj queryObj = new ContractQueryObj();
55、queryObj.setBizoppId(bizoppId); queryObj.setContractDate(contractDate); queryObj.setContractId(contractId); queryObj.setCustomerName(customerName); queryObj.setOrderRevenueOne(orderRevenueOne); queryObj.setOrderRevenueOneSign(orderRevenueOneSign); queryObj.setOrderRevenueTwo(orderRevenueTwo); queryO
56、bj.setOrderRevenueTwoSign(orderRevenueTwoSign); queryObj.setProjectName(projectName); queryObj.setDeptNo(deptNo); ApplicationContext context = getWebApplicationContext(); IContractService contractService = (IContractService) context.getBean( contractService); /added by Chen Hongkun,20080601 IDepartm
57、entService departmentService = (IDepartmentService)context.getBean(departmentService); PageInfo pageInfo = new PageInfo(); try pageInfo = contractService.findContractsForAll(iPageSize, iPageNo, queryObj); catch (Exception ex) request.setAttribute(feedback, ex.getMessage(); / added by Chen Hongkun,20
58、080601 request.setAttribute(departmentService, departmentService); request.setAttribute(pageInfo, pageInfo); return mapping.findForward(success); int getPageSize(HttpServletRequest request) int iPageSize = 0; String strPageSize = null; strPageSize = (String) request.getParameter(pageSize); if (strPa
59、geSize = null | strPageSize.equals() iPageSize = Constant.getConPagesize(); / 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
60、(HttpServletRequest request) int iPageNo = 0; String strPageNo = 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 L
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省瀘州市瀘縣2025-2026學(xué)年八年級(jí)上學(xué)期1月期末數(shù)學(xué)試題(含答案)
- 遼寧省葫蘆島市2026屆九年級(jí)上學(xué)期期末考試物理試卷(含答案)
- 吉林省吉林市蛟河市2025-2026學(xué)年七年級(jí)上學(xué)期1月期末考試生物試卷(含答案)
- 2025-2026學(xué)年山西省晉中市太谷區(qū)七年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 虛擬化技術(shù)應(yīng)用全面指南
- 化工企業(yè)技術(shù)管理
- 12月債券市場(chǎng)展望:降準(zhǔn)降息預(yù)期不高債券仍處弱勢(shì)
- 飛機(jī)鉚接技術(shù)授課
- 國(guó)新資本有限公司相關(guān)崗位招聘16人備考考試試題及答案解析
- 2026年上半年黑龍江省商務(wù)廳事業(yè)單位公開(kāi)招聘工作人員50人參考考試題庫(kù)及答案解析
- 養(yǎng)老護(hù)理員的睡眠照料
- 疾控中心艾滋病工作匯報(bào)
- QCT1067.5-2023汽車電線束和電器設(shè)備用連接器第5部分:設(shè)備連接器(插座)的型式和尺寸
- 胎兒宮內(nèi)生長(zhǎng)遲緩的表觀遺傳學(xué)改變
- 防腐保溫施工應(yīng)急預(yù)案
- 票據(jù)業(yè)務(wù)承諾函
- 幼兒園中班語(yǔ)言課《愛(ài)心樹(shù)》教學(xué)設(shè)計(jì)【含教學(xué)反思】
- 巖溶地區(qū)橋梁樁基施工監(jiān)控及質(zhì)量控制
- 美國(guó)AAMA檢驗(yàn)標(biāo)準(zhǔn)
- 三片罐制作工藝流程
- 一年級(jí)《背土豆》教學(xué)反思
評(píng)論
0/150
提交評(píng)論