版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
服務(wù)項(xiàng)目管理系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)TOC\o"1-5"\h\z1軟件背景221.1可行性分析221.1.1功能可行性221.1.2經(jīng)濟(jì)可行性221.1.3管理可行性222軟件概述及設(shè)計(jì)方案33軟件構(gòu)架圖66功能結(jié)構(gòu)分析663針對(duì)軟件的各功能模塊做具體的設(shè)計(jì)描述及附注相關(guān)設(shè)計(jì)結(jié)果773.1服務(wù)產(chǎn)品管理773.1.1功能簡(jiǎn)介773.1.2功能說(shuō)明773.1.3數(shù)據(jù)表設(shè)計(jì)773.2服務(wù)方案管理883.2.1功能簡(jiǎn)介883.2.2功能說(shuō)明883.2.3數(shù)據(jù)表設(shè)計(jì)883.3培訓(xùn)管理993.3.1功能簡(jiǎn)介993.3.2功能說(shuō)明993.3.3數(shù)據(jù)表設(shè)計(jì)99軟件背景系統(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)目管理軟件的通俗化名稱,服務(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),其開(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)。1.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ù)的要求.系統(tǒng)的可靠性:該系統(tǒng)可靠性高,能無(wú)故障正常的工作,當(dāng)出現(xiàn)異常情況是還采取了一些防止系統(tǒng)破壞的方法和措施,如密碼保存,數(shù)據(jù)備份等.系統(tǒng)的效率:與舊系統(tǒng)相比,減輕了許多重復(fù)的繁瑣的勞動(dòng)和手工計(jì)算量,抄寫量,在對(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),資源得到了充分利用,減少和避免了資金的使用不當(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)及各功能模塊。在現(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、HttpInvoker)編寫不同的服務(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ā)人員只需在代碼中“注入”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),這些代理已經(jīng)是可用的服務(wù),服務(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的傳遞在服務(wù)池(ServicePool)概念的基礎(chǔ)上進(jìn)行擴(kuò)展,我們得出了如下的系統(tǒng)模型:KKXSavitc<'VA匸vl>AA職霽屮血熾而T川I{蘇It科M券克L汕功態(tài)辻別一WW-\\叨或占?咸-杖沾求討注冊(cè)一;1冊(cè)壯制的述現(xiàn)董砧量-r-iWKKXSavitc<'VA匸vl>AA職霽屮血熾而T川I{蘇It科M券克L汕功態(tài)辻別一WW-\\叨或占?咸-杖沾求討注冊(cè)一;1冊(cè)壯制的述現(xiàn)董砧量-r-iW創(chuàng)匹V■服務(wù)需仝艸亠切親.~促服務(wù)價(jià)II,?:是脈肚JID*接口在配宣文件中IS定,齟務(wù)心培疔時(shí)動(dòng);£袂鞍安送話,.用冊(cè)川拎?IPIP唧慌財(cái):威】址mi:窯K訕%円超+儒要設(shè)計(jì)1卒井帚JJ的帶弗.河啟用姬盪是謹(jǐn)明的,由冊(cè)在走行時(shí)根攙1二的刪則笛略:謚弘%.proddeOdFaLiltScfvictf^cpGeitofy-sErxiceConlsiner:MspcString〔0b)&ci>-teonFactdry:BeanFadorytsctBDonF□da^rtbeonFaictory':BeanFcid:Bry):void■"itErPnoDEitlesKenrmoi日r&lnwsinterl^ce?SD新£甘1即£誠(chéng)心1¥■+gdSer'flDe(ser^iDeCI口占s:Cbs^&en>iceld:String):Object■n&iioveSeivt^seiv^ceCIassClass,sa^celdSlurs):■udd+regidService(eer\iceClses-:CIses.ser^iceld:String.ser^c...+gdtserMcetsenjieeclass:Class,servedd■5trlngBprops:Propertes):ObjeclIlhtilriM'QkeiS&rviccPiroxyC&rEiatoi?lntafcce^?-gerviceProK^GeiiefatorRbthIeSerm曲rowyFactory-serMcelrteil^ceClass-€Br\iDeld:StringHtttiliwijkeiSuiTiikeP'iQjryGcifca/(di-httpln*^)kerFadoly:Hltpln\*Bk&rPnoscyFaciciiyBBanIIIea巨門「£mi££P(guān)「百列石unufirt口r-hessianProryFsdory:HessisnPrax^Fsctor^Bean<clnterfece^>Sea^it^cddPiEiclEa4-g-atCunentSar?s<d():StringI■fregidSerulee(^Er\lceCls&£:..w<dE曰fiace^pEa-viccRcgistcrXFiiicScivic:ePnojorfieneratur->iiPsClieniFsctory:XFireCi?5ntFsdcir/BssinCustorrtSerMiGd^acvGcrieotGrD^ault^BrviDeldPiroviclerDcfauHEcrviccRcgiBt^f外諮in并樹(shù)供.桿在核心位置上是一個(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,HttpInvoker,Hessian等創(chuàng)建服務(wù)代理,也可以針對(duì)自己定義的遠(yuǎn)程調(diào)用方式創(chuàng)建服務(wù)代理,由CustomServiceProxyGenerator完成該功能。一個(gè)服務(wù)模型包括5個(gè)因素:服務(wù)接口serviceClass服務(wù)IDserviceId服務(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è)接口相同但I(xiàn)D不同的服務(wù)。服務(wù)ID的獲取是系統(tǒng)中一個(gè)關(guān)鍵的功能,這部分對(duì)程序員來(lái)說(shuō)應(yīng)該是透明的,由系統(tǒng)自己維護(hù)。相應(yīng)的提供了一個(gè)服務(wù)ID提供者(ServiceldProvider)接口,由實(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ì)所有服務(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)架圖方雲(yún)尢島用戶矍乗直責(zé)人非負(fù)責(zé)人培訓(xùn)員畫人方案總監(jiān)方翠薩直培訓(xùn)信亙V査香商務(wù)人晨員工[功能結(jié)構(gòu)分析針對(duì)軟件的各功能模塊做具體的設(shè)計(jì)描述及附注相關(guān)設(shè)計(jì)結(jié)果3.1服務(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ō)明A服務(wù)產(chǎn)品詳情>服務(wù)產(chǎn)品的管理,添加,刪除,修改3.1.3數(shù)據(jù)表設(shè)計(jì)表名:s_service_product服務(wù)產(chǎn)品
示名稱字段名稱字段類型NULLPK/FK備注口口編號(hào)service_product_idVARCHAR(IO)NOTNULLPK應(yīng)用程序賦值(4產(chǎn)品類別字母+3位流水號(hào))品名稱service_solution_nameVARCHAR(50)NOTNULL品類別service_product_typeVARCHAR(20)NOTNULL品負(fù)責(zé)service_product_ownerVARCHAR(5)NOTNULLFK(s_employee:empno)品審核service_product_approverVARCHAR(5)NULLFK(s_employee:empno)建日期createdatedateNOTNULL注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ù)方案的所有屬性可見(jiàn),包括方案預(yù)算表。商務(wù)人員對(duì)所有服務(wù)方案可見(jiàn),并且可以查看和更新每個(gè)方案的方案預(yù)算表。公司領(lǐng)導(dǎo)可以查看所有服務(wù)方案。功能說(shuō)明客戶方案的提供管理員對(duì)客戶方案的修改不同人對(duì)方案的查看3.2.3數(shù)據(jù)表設(shè)計(jì)表名:sservicesolution服務(wù)方案示名稱字段名稱字段類型NULLPK/FK備注案編號(hào)service_solution_idservice_solution_nameservice_solution_dateservice_solution_ownerservice_solution_approverVARCHAR(10)NOTNULLPK與商機(jī)編號(hào)致案名稱VARCHAR(50)NOTNULL案日期dateNOTNULL案負(fù)責(zé)人VARCHAR(5)NOTNULLFK(s_employee:empno)案審核人VARCHAR(5)NULLFK(semployee:
案滿意度級(jí)滿意度案正文content_degree_salecontent_degree_leaderservice_solution_fileintintintempno)NULLNULLNULL案PPTservice_solution_ppt案滿意度級(jí)滿意度案正文content_degree_salecontent_degree_leaderservice_solution_fileintintintempno)NULLNULLNULL案PPTservice_solution_pptintNULLint目預(yù)算表budget_file目人員成預(yù)算budgetamountNULLFK(s_common_file:file_id)FK(s_common_file:file_id)FK(s_common_file:fileid)intNOTNULL默認(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é)人不能訪問(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)。如果尚未到達(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)3.3.3數(shù)據(jù)表設(shè)計(jì)表名:scourse培訓(xùn)課程顯示名稱字段名稱字段類型NULLPK/FK備注課程編號(hào)course_idVARCHAR(10)NOTNULLPK應(yīng)用程序賦值(1位課程類別+3位流水號(hào))課程類別course_typeVARCHAR(10)NOTNULL
表名:slesson培訓(xùn)日程顯示名稱字段名稱字段類型NULLPK/FK備注培訓(xùn)日程IDlesson_idVARCHAR(20)NOTNULLPK應(yīng)用程序賦值(4位課程編號(hào)+3位流水號(hào))課程編號(hào)course_idVARCHAR(10)NOTNULLFK(s_course:courseid)報(bào)名截止時(shí)間sign_up_end_datedateNOTNULL報(bào)名人數(shù)intended_attendanceintNOTNULL默認(rèn)值:0已報(bào)名人數(shù)real_attendanceintNOTNULL默認(rèn)值:0開(kāi)課時(shí)間lesson_begin_datedateNOTNULL結(jié)束時(shí)間lesson_end_datedateNOTNULL授課地占八、、lessonplaceVARCHAR(50)NOTNULL課程講師lessontrainerVARCHAR(5)NULLFK(s_employee:empno)培訓(xùn)負(fù)責(zé)人lessonownerVARCHAR(5)NOTNULLFK(s_employee:empno)備注notationVARCHAR(100)NULL課程名稱培訓(xùn)方式課程創(chuàng)建日期人均培訓(xùn)費(fèi)用課程講師培訓(xùn)負(fù)責(zé)人教材course_nametraining_modecoursecreatedatecostpertraineecoursetrainercourseownermaterialidVARCHAR(50)VARCHAR(30)dateintVARCHAR(5)VARCHAR(5)int課程名稱培訓(xùn)方式課程創(chuàng)建日期人均培訓(xùn)費(fèi)用課程講師培訓(xùn)負(fù)責(zé)人教材course_nametraining_modecoursecreatedatecostpertraineecoursetrainercourseownermaterialidVARCHAR(50)VARCHAR(30)dateintVARCHAR(5)VARCHAR(5)intNOTNULLNOTNULLNOTNULLNOTNULLNULLNOTNULLNULLFK(s_employee:empno)FK(s_employee:emp_no)FK(s_common_file:fileid)示名稱訓(xùn)學(xué)員ID訓(xùn)日程ID訓(xùn)負(fù)責(zé)人成情況表名:s_lesson_trainee培訓(xùn)名單字段名稱lesson_trainee_idlesson_idtraineenofeedback字段類型intVARCHAR(20)intVARCHAR(IOO)NULLNOTNULLNOTNULL示名稱訓(xùn)學(xué)員ID訓(xùn)日程ID訓(xùn)負(fù)責(zé)人成情況表名:s_lesson_trainee培訓(xùn)名單字段名稱lesson_trainee_idlesson_idtraineenofeedback字段類型intVARCHAR(20)intVARCHAR(IOO)NULLNOTNULLNOTNULLNOTNULLNULLPK/FKPKFK(s_lesson:lesson_id)FK(s_employee:empno)備注數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng)ID代碼:packagecom.lenovoai.nicemis.web.action;importorg.springframework.web.struts.ActionSupport;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.action.ActionForm;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.springframework.context.ApplicationContext;importcom.lenovoai.nicemis.service.*;importcom.lenovoai.nicemis.model.*;importcom.lenovoai.nicemis.model.security.*;importcom.lenovoai.nicemis.util.*;importjava.util.*;/**<p>Title:</p><p>Description:</p><p>Copyright:Copyright(c)2005</p><p>Company:</p>*@authornotattributable*@version1.0*/publicclassFindServiceProductsForAllActionextendsActionSupport{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{//collectparametersforbusinesslogicHttpSessionhttpSession=request.getSession(true);SecurityDetailssd=(SecurityDetails)httpSession.getAttribute(SecurityDetails.SECURITY_DETAILS_KEY);StringserviceProductId=(String)request.getParameter("serviceProductId");StringserviceProductName=(String)request.getParameter("serviceProductName");StringserviceProductType=(String)request.getParameter("serviceProductType");StringserviceProductOwnerName=(String)request.getParameter("serviceProductOwnerName");Stringyear=(String)request.getParameter("year");intiPageSize=getPageSize(request);intiPageNo=getPageNo(request);ServiceProductQueryObjqueryObj=newServiceProductQueryObj();queryObj.setCurrentUserEmpNo(sd.getUserInfo().getEmpNo());queryObj.setServiceProductId(serviceProductId);queryObj.setServiceProductName(serviceProductName);queryObj.setServiceProductType(serviceProductType);queryObj.setServiceProductOwnerName(serviceProductOwnerName);queryObj.setYear(year);ApplicationContextcontext=getWebApplicationContext();IServiceProductServiceserviceProductService=(IServiceProductService)context.getBean("serviceProductService");PageInfopageInfo=newPageInfo();try{pageInfo=serviceProductService.findServiceProductsForAll(iPageSize,iPageNo,queryObj);}catch(Exceptionex){request.setAttribute("feedback",ex.getMessage());}request.setAttribute("pageInfo",pageInfo);returnmapping.findForward("success");}intgetPageSize(HttpServletRequestrequest){intiPageSize=0;StringstrPageSize=null;strPageSize=(String)request.getParameter("pageSize");if(strPageSize==null||strPageSize.equals("")){iPageSize=Constant.getConPagesize();////////////////////////////////////else{try{iPageSize=Integer.parseInt(strPageSize);}catch(Exceptionex){iPageSize=Constant.getConPagesize();////////////////////////////////////System.out.println("DeveloperDebugLog:[pageSizeparameterisincorrect!]");}}returniPageSize;}intgetPageNo(HttpServletRequestrequest){intiPageNo=0;StringstrPageNo=null;strPageNo=(String)request.getParameter("pageNo");if(strPageNo==null||strPageNo.equals("")){iPageNo=1;////////////////////////////////////}else{try{iPageNo=Integer.parseInt(strPageNo);}catch(Exceptionex){iPageNo=1;////////////////////////////////////System.out.println("DeveloperDebugLog:[pageNoparameterisincorrect!]");}}returniPageNo;}}維護(hù)服務(wù)方案(方案人員)packagecom.lenovoai.nicemis.web.action;importorg.springframework.web.struts.ActionSupport;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.action.ActionForm;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.springframework.context.ApplicationContext;importcom.lenovoai.nicemis.service.*;importcom.lenovoai.nicemis.model.*;importcom.lenovoai.nicemis.model.security.*;importcom.lenovoai.nicemis.util.*;importjava.util.*;/***<p>Title:</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2005</p>*<p>Company:</p>*@authornotattributable*@version1.0*/publicclassFindServiceSolutionsForSolutionerActionextendsActionSupport{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{//collectparametersforbusinesslogicHttpSessionhttpSession=request.getSession(true);SecurityDetailssd=(SecurityDetails)httpSession.getAttribute(SecurityDetails.SECURITY_DETAILS_KEY);StringbizoppId=(String)request.getParameter("bizoppId");StringserviceSolutionName=(String)request.getParameter("serviceSolutionName");StringcontentDegreeLeader=(String)request.getParameter("contentDegreeLeader");StringcontentDegreeSale=(String)request.getParameter("contentDegreeSale");StringserviceSolutionOwnerName=(String)request.getParameter("serviceSolutionOwnerName");Stringyear=(String)request.getParameter("year");intiPageSize=getPageSize(request);intiPageNo=getPageNo(request);ServiceSolutionQueryObjqueryObj=newServiceSolutionQueryObj();queryObj.setCurrentUserEmpNo(sd.getUserInfo().getEmpNo());queryObj.setBizoppId(bizoppId);queryObj.setServiceSolutionName(serviceSolutionName);queryObj.setServiceSolutionOwnerName(serviceSolutionOwnerName);queryObj.setYear(year);queryObj.setContentDegreeLeader(contentDegreeLeader);queryObj.setContentDegreeSale(contentDegreeSale);ApplicationContextcontext=getWebApplicationContext();IServiceSolutionServiceserviceSolutionService=(IServiceSolutionService)context.getBean("serviceSolutionService");PageInfopageInfo=newPageInfo();try{pageInfo=serviceSolutionService.findServiceSolutionsForSolutioner(iPageSize,iPageNo,queryObj);}catch(Exceptionex){request.setAttribute("feedback",ex.getMessage());}request.setAttribute("pageInfo",pageInfo);returnmapping.findForward("success");}intgetPageSize(HttpServletRequestrequest){intiPageSize=0;StringstrPageSize=null;strPageSize=(String)request.getParameter("pageSize");if(strPageSize==null||strPageSize.equals("")){iPageSize=Constant.getConPagesize();////////////////////////////////////}else{try{iPageSize=Integer.parseInt(strPageSize);}catch(Exceptionex){iPageSize=Constant.getConPagesize();////////////////////////////////////System.out.println("DeveloperDebugLog:[pageSizeparameterisincorrect!]");}}returniPageSize;}intgetPageNo(HttpServletRequestrequest){intiPageNo=0;StringstrPageNo=null;strPageNo=(String)request.getParameter("pageNo");if(strPageNo==null||strPageNo.equals("")){iPageNo=1;////////////////////////////////////}else{try{iPageNo=Integer.parseInt(strPageNo);}catch(Exceptionex){iPageNo=1;////////////////////////////////////System.out.println("DeveloperDebugLog:[pageNoparameterisincorrect!]");}}returniPageNo;查詢?nèi)颗嘤?xùn)課程packagecom.lenovoai.nicemis.web.action;importorg.springframework.web.struts.ActionSupport;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.action.ActionForm;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.springframework.context.ApplicationContext;importcom.lenovoai.nicemis.service.*;importcom.lenovoai.nicemis.model.*;importcom.lenovoai.nicemis.util.*;importjava.util.*;importcom.lenovoai.nicemis.model.security.SecurityDetails;/***<p>Title:</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2005</p>*<p>Company:</p>*@authornotattributable*@version1.0*/publicclassFindContractsForAllActionextendsActionSupport{publicFindContractsForAllAction(){}publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{//collectparametersforbusinesslogicStringcontractId=(String)request.getParameter("contractId");StringbizoppId=(String)request.getParameter("bizoppId");StringcustomerName=(String)request.getParameter("customerName");StringprojectName=(String)request.getParameter("projectName");StringorderRevenueOneSign=(String)request.getParameter("orderRevenueOneSign");StringorderRevenueOne=(String)request.getParameter("orderRevenueOne");StringorderRevenueTwoSign=(String)request.getParameter("orderRevenueTwoSign");StringorderRevenueTwo=(String)request.getParameter("orderRevenueTwo");StringcontractDate=(String)request.getParameter("contractDate");StringdeptNo=(String)request.getParameter("deptNo");intiPageSize=getPageSize(request);intiPageNo=getPageNo(request);ContractQueryObjqueryObj=newContractQueryObj();queryObj.setBizoppId(bizoppId);queryObj.setContractDate(contra
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冀少版八年級(jí)生物上冊(cè)第五單元復(fù)習(xí)提升課件
- 電子教案格式
- 《螞蟻?zhàn)霾佟方虒W(xué)設(shè)計(jì)與反思
- 服裝庫(kù)存管理技巧
- 新能源履約管理辦法
- 商場(chǎng)洗手間修繕合同
- 美容美發(fā)市場(chǎng)租賃合同
- 港口航道招投標(biāo)控標(biāo)要點(diǎn)分析
- 石油行業(yè)不合格產(chǎn)品處理
- 劇院表演中心演藝車庫(kù)改造合同
- RoHS檢測(cè)報(bào)告完整版
- 原油電脫水處理技術(shù)
- 肯布蘭佳領(lǐng)導(dǎo)力發(fā)展戰(zhàn)略課程
- 紅樓夢(mèng)81至100回讀書(shū)筆記3篇
- 26個(gè)標(biāo)點(diǎn)符號(hào)大全
- 學(xué)術(shù)畢業(yè)論文的選題及寫作課件
- GB/T 9115.1-2000平面、突面對(duì)焊鋼制管法蘭
- GB/T 19811-2005在定義堆肥化中試條件下塑料材料崩解程度的測(cè)定
- 新中國(guó)成立以來(lái)反腐倡廉歷史進(jìn)程回顧課件
- 希沃優(yōu)化大師操作培訓(xùn)
- 《水稻高產(chǎn)栽培技術(shù)》全套課件(完整版)
評(píng)論
0/150
提交評(píng)論