員工基本工資組成模塊.ppt
《員工基本工資組成模塊.ppt》由會員分享,可在線閱讀,更多相關(guān)《員工基本工資組成模塊.ppt(24頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第12章員工基本工資組成模塊,大連理工大學(xué)電子音像出版社出版,學(xué)習(xí)目標(biāo),理解三層架構(gòu)得基本思想;根據(jù)業(yè)務(wù)邏輯分析需求;把需求進行細化、分解,搭建標(biāo)準三層架構(gòu)的基本框架;理解三層架構(gòu)中各層的相互引用的知識;理解工廠層和接口層在整個架構(gòu)體系中的作用;能分步驟實現(xiàn)三層架構(gòu)的代碼。,業(yè)務(wù)邏輯分析,在學(xué)校中有三種工資的計算方法。首先,所有職務(wù)都有基本工資。包括學(xué)院的領(lǐng)導(dǎo)、教師、行政人員、保衛(wèi)人員。除了基本工資,有兩種職務(wù)工資還有其它組成部分:教師,要領(lǐng)取課時費;保衛(wèi),要領(lǐng)取值班津貼,而且保衛(wèi)的值班津貼要分白班和夜班,因為白班和夜班的津貼額是不一樣的。所有工資發(fā)放都按月計算。,設(shè)計測試用例,測試用例要求。輸入:員工流水號(員工號)、發(fā)放工資的年、發(fā)放工資的月。輸出:員工的具體職務(wù)、員工在此年此月的基本工資(三個組成部分的明細)、課時費、值班津貼。,設(shè)計測試用例,,需求的細化與設(shè)計分析職務(wù)工資和學(xué)歷工資,員工的職務(wù)工資由員工的具體職務(wù)確定。所以我們要得到職務(wù)工資數(shù),首先要得到員工的職務(wù)是什么。這些信息都儲存在數(shù)據(jù)庫的職務(wù)工資表(Duty)中。,需求的細化與設(shè)計分析學(xué)歷工資,員工的學(xué)歷工資由員工的學(xué)歷高低確定。所以我們要得到學(xué)歷工資數(shù),首先要得到員工的學(xué)歷是什么。這些信息都儲存在數(shù)據(jù)庫的學(xué)歷表(Title)中但是在我們的用例設(shè)計中,我們輸入的是員工號碼,而不是輸入的學(xué)歷編號和職務(wù)編號,所以,還必須通過員工號碼得到職務(wù)編號和學(xué)歷編號。這個邏輯是操作的員工表(Employee),需求的細化與設(shè)計分析學(xué)歷工資,,需求的細化與設(shè)計分析獎懲金額,獎懲就是在基本工資之外,該月對員工的獎勵或者因為員工違反了學(xué)校的紀律,對員工的扣除金額。和前面講的職務(wù)、學(xué)歷工資不同,獎懲每月是不固定的,也許沒有,也許有,而且還有多條獎懲記錄。關(guān)于員工的獎懲信息,儲存在獎懲記錄表(IncentivePenalty)中。,需求的細化與設(shè)計分析課時費和值班津貼,如果職務(wù)是教師等教學(xué)人員,則要計算教師的課時費。就是教師每上一節(jié)課都有一定的費用;課時費信息,儲存在課時計算表(SchoolTime)。通過EmpID(員工流水號)和SchoolYear(年)、SchoolMonth(月)得到該年月這個員工的SchoolTimes(上課節(jié)數(shù))。該月課時費=每節(jié)課金額該月上課節(jié)數(shù)。,需求的細化與設(shè)計分析值班津貼,如果是保安等保衛(wèi)人員,他們是24小時輪換值班,每值一次班,都有一定的津貼,而且白班和夜班津貼不相同。值班津貼信息儲存在津貼計算表(SubSidy)。通過EmpID(員工流水號)和SubSidyYear(年)、SubSidyMonth(月)得到該年月這個員工的SubSidyNight(夜班次數(shù))和SubSidyDay(白班次數(shù))。該月值班津貼=白班金額該月白班數(shù)+夜班金額該月夜班數(shù)。,標(biāo)準三層架構(gòu)的基本框架,PAMS:表現(xiàn)層所有的窗體界面。BLL:邏輯層由表現(xiàn)層直接調(diào)用,通過邏輯層去調(diào)用接口層中的方法DALFactory:工廠層在工廠層中定義配置信息,利用反射的技術(shù),決定在IDAL(接口層)中所定義的方法是由哪一個DAL(數(shù)據(jù)層)來實現(xiàn)。如果使用的是SQLServer數(shù)據(jù)庫,IDAL(接口層)中的方法,就由SQLServerDAL來實現(xiàn);如果要使用Access數(shù)據(jù)庫,就由AccessDAL來實現(xiàn)接口層中的方法。IDAL:接口層定義完成任務(wù)所需要的方法。SQLServerDAL:數(shù)據(jù)層實現(xiàn)IDAL層中定義的方法。所有的數(shù)據(jù)庫操作語句都寫在次層中??梢远ǘ鄠€DAL(數(shù)據(jù)層)。如果是使用SQLServer數(shù)據(jù)庫,可以命名為SQLServerDAL,如果是Access數(shù)據(jù)庫,就可以命名為AccessDAL。Model:實體層作為數(shù)據(jù)的載體傳遞信息,類似結(jié)構(gòu)變量。,添加每層之間的引用關(guān)系,PAMS:BLL、Model、SQLServerDALBLL:DALFactory、IDAL、ModelDALFactory:IDAL、ModelIDAL:ModelSQLServerDAL:IDAL、ModelModel:無,實現(xiàn)工資計算程序界面設(shè)計,實現(xiàn)工資計算的業(yè)務(wù)邏輯,分析職務(wù)工資的過程我們知道,職務(wù)工資的計算要涉及到兩張表,職務(wù)工資表(Duty)和員工表(Employee)。在界面輸入員工流水號以后,首先要通過員工表(Employee)得到DutyID(職務(wù)編號),然后再把DutyID(職務(wù)編號)作為輸入值,通過職務(wù)工資表(Duty)得到BasicWage(職務(wù)工資)。,計算職務(wù)工資-Model層,因為涉及到員工表和職務(wù)表,我們需要分別針對這兩個表建兩個實體類:Duty.cs和Employee.cs,在實體類中都是成員變量和與成員變量對應(yīng)的屬性。大家可以注意到,成員變量和屬性都是和相關(guān)的數(shù)據(jù)庫表的字段對應(yīng)的。這方面的內(nèi)容,在前幾章我們已經(jīng)詳細講解過。,計算職務(wù)工資-IDAL層,在員工的接口類中,我們添加了一個方法“PAMS.Model.EmployeeGetModel(intEmpID)”,它作用是:輸入員工號碼,返回的一個員工的實體對象。為什么這里我們沒有把這個方法寫成是:輸入員工號碼,返回員工的職務(wù)ID,來直接滿足我們的操作要求呢?我們的目的是為了提高程序代碼的適用性。在這個功能中,我們需要得到員工的職務(wù)號碼,在下一個功能中,我們又要得到員工的學(xué)歷號碼。也許以后還需要得到員工的職稱號碼。所以,當(dāng)遇到由一個表的主鍵得到其它字段值的操作的時候,就直接返回一個實體。而不需要為每一個字段的返回又去單獨寫一個方法。,計算職務(wù)工資-DAL層,員工數(shù)據(jù)庫操作實現(xiàn)類的代碼:SQLServerDAL層的EmployeeAccess.cs職務(wù)數(shù)據(jù)庫操作實現(xiàn)類的代碼:SQLServerDAL層的DutyAccess.cs我們在數(shù)據(jù)層中,是為了實現(xiàn)在接口層的類中所定義的方法。在接口層中我們定義的得到實體對象的方法,就需要在這里具體實現(xiàn)。,計算職務(wù)工資-DALFactory層和BLL層,這里我們把工廠層(DALFactory)和邏輯層(BLL)放在一起講。邏輯層的作用是:實例化接口層(IDAL),從而調(diào)用接口類中的操作方法。工廠層的作用是:在邏輯層實例化接口層的時候,由工廠層來決定接口層中定義的接口,由哪一個DAL來實現(xiàn)。如果是使用SQLServer數(shù)據(jù)庫,自然使用我們定義的SQLServerDAL,如果我們的數(shù)據(jù)庫平臺要換成Oracle,那只要在程序上加寫一個OracleDAL,然后在工廠層中修改一下配置參數(shù)就可以使用了。通過這樣的方法,實現(xiàn)了程序操作和數(shù)據(jù)庫平臺的無關(guān)性,把數(shù)據(jù)層的操作從程序中分離出來。而其中起控制作用的就是工廠層。,計算職務(wù)工資-表現(xiàn)層,我們通過表現(xiàn)層來輸入數(shù)據(jù),輸出結(jié)果。計算職務(wù)工資,需要的輸入值就是員工號。通過前面的分析,我們知道應(yīng)該分成兩個步驟,首先通過員工號得到職務(wù)號碼,然后再通過職務(wù)號碼得到職務(wù)工資。其中第一個過程操作的是員工表,第二個過程操作的是職務(wù)表。,計算職務(wù)工資-表現(xiàn)層,,實現(xiàn)工資計算的表現(xiàn)層的程序完善表現(xiàn)層中的自定義方法和方法類,GetConfigValue(intConID)得到配置信息:課時費、值班津貼GetDutyNameByEmpID得到職務(wù)名稱GetDutyWageByEmpID得到職務(wù)工資GetSubSidyByEmpID得到值班次數(shù)GetSumIncPenDisByEmpID得到獎懲金額合計GetSumSchoolTimesByEmpID得到上課次數(shù)GetTitleWageByEmpID得到學(xué)歷工資SalaryComputeMethod(intid,stringyear,stringmonth)構(gòu)造函數(shù),傳入員工號、年、月,表現(xiàn)層中方法調(diào)用,我們通過最后對表現(xiàn)層的方法類中方法的調(diào)用實現(xiàn)最后的操作目的:指定員工的某年某月的工資計算。1.通過對方法類SalaryComputeMethod的實例化,通過構(gòu)造函數(shù)傳入外部參數(shù):SalaryComputeMethodscm=newSalaryComputeMethod(empID,year,month);//實例化工資計算方法類,傳入了這個類中構(gòu)造函數(shù)需要的三個參數(shù):員工號、年、月2.調(diào)用對象的方法,計算基本工資3.判斷職務(wù),精細課時費和值班津貼的計算,標(biāo)準三層架構(gòu)的總結(jié),標(biāo)準三層架構(gòu)各層間的訪問過程1.傳入值,將值進行類型轉(zhuǎn)換2.創(chuàng)建BLL層的對象,通過對象訪問BLL層的方法調(diào)用BLL層3.BLL層方法中取得數(shù)據(jù)訪問層的實例,實例化IDAL層的接口對象,然后返回IDAL層傳入值所查找的內(nèi)容的方法4.通過工廠層的選擇,訪問指定DAL層,返回一個完整的調(diào)用DAL層的結(jié)果給BLL層5.到此要調(diào)用DAL層,DAL層完成賦值Model層的對象值為空,給定一個參數(shù),調(diào)用sql層的sqlhelper的方法,讀出每個字段的數(shù)據(jù)賦值給以定義為空的Model層的對象6.sqlhelper執(zhí)行sql命令,返回一個指定連接的數(shù)據(jù)庫記錄集,在這里需要應(yīng)用參數(shù)類型,提供位打開連接命令執(zhí)行做好準備7.返回Model層把查詢得到的一行記錄值賦值給sql層的引入的Model層的對象,然后把這個對象返回給BLL8.回到界面層的BLL層的方法調(diào)用,把得到的對象值返回,在前臺顯示給界面,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 員工 基本工資 組成 模塊
鏈接地址:http://appdesigncorp.com/p-12817767.html