住房公積金貸款管理交易系統(tǒng)_第1頁
住房公積金貸款管理交易系統(tǒng)_第2頁
住房公積金貸款管理交易系統(tǒng)_第3頁
住房公積金貸款管理交易系統(tǒng)_第4頁
住房公積金貸款管理交易系統(tǒng)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、2010-2011學年第二學期高級應用課程設計報告項 目 組:專 業(yè): 計算機科學與技術 學 院:指導教師:時 間:2011年7月11日-2011年7月22日目 錄一、團隊構(gòu)成及分工1二、進度計劃2三、需求分析33.1 需求描述33.2 用況建模3四、項目功能設計44.1 總體設計44.2 算法設計5五、項目數(shù)據(jù)設計85.1 數(shù)據(jù)邏輯設計85.2 數(shù)據(jù)表設計9六、系統(tǒng)實現(xiàn)14七、關鍵代碼22八、課程設計總結(jié)47一、團隊構(gòu)成及分工團隊: X-Group職能成員任務分工成績組長總體設計、編碼、調(diào)試、測試組員編碼、設計頁面編碼、數(shù)據(jù)庫設計文檔、數(shù)據(jù)庫設計 指導教師簽字: 年 月 日二、進度計劃序號任

2、務名稱開始時間完成時間持續(xù)時間1分工、系統(tǒng)設計、系統(tǒng)原型搭建7-117-13兩天2模塊編碼7-137-19六天3進行系統(tǒng)測試7-197-20一天4程序的打包和發(fā)布、整理文檔7-207-21一天5撰寫課程設計報告、答辯7-217-22一天三、需求分析3.1 需求描述住房公積金貸款管理交易系統(tǒng)從審批開始到資金劃撥結(jié)束需要經(jīng)過的幾個狀態(tài)為:審批通過、貸款開戶、抵押確認、打印放款通知書、資金劃撥。個貸審批:根據(jù)借款人的已做審批情況、歷史貸款情況、購房情況、本次貸款申請情況、借款人自然情況(性別、年齡)等,系統(tǒng)自動做出“貸與不貸”“貸的金額年限”判斷,若不能貸,還需逐條列示原因;若能貸申請金額年限的貸款

3、則產(chǎn)生貸款審批記錄(標記為未審批通過)。貸款開戶:產(chǎn)生貸款合同等基本信息。抵押登記確認:經(jīng)抵押登記機構(gòu)辦理好抵押手續(xù)后,做本交易,更新“抵押庫信息”,抵押狀態(tài)為“已登記”。本交易后,方可打印放款通知書,進行貸款發(fā)放。放款通知書打?。鹤霰窘灰桩a(chǎn)生放款通知書,把通知書拿給會計科做貸款資金劃撥。貸款資金劃撥:對公積金貸款資金進行劃撥,生成還款計劃。3.2 用況建模圖3.1 用例圖四、項目功能設計4.1 總體設計柜員登錄個貸審批貸款開戶放款通知書打印抵押登記圖4.1 層次方框圖4.2 算法設計1.登錄后,先提示輸入身份證號,最多可輸入兩個人的身份證號,一個人的身份證號不可輸入兩次。通過后,輸入一個身份

4、證號,系統(tǒng)自動識別為單職工貸款,輸入兩個身份證號,系統(tǒng)自動識別為雙職工貸款。若不能貸,需逐條列出不能貸的原因。圖4.2個貸審批活動圖2. 輸入貸款審批號,提取貸款審批信息,核對后,可確認開戶,生成分戶帳信息(貸款利率以當前執(zhí)行利率為準)。圖4.3貸款開戶活動圖3.經(jīng)抵押登記機構(gòu)辦理好抵押手續(xù)后,做本交易,更新“抵押庫信息”,抵押狀態(tài)為“已登記”。本交易后,方可打印放款通知書,進行貸款發(fā)放。圖4.4 抵押登記活動圖4.按委托銀行產(chǎn)生對應銀行放款通知書圖4.5放款通知書打印活動圖五、項目數(shù)據(jù)設計5.1 數(shù)據(jù)邏輯設計圖5.1 數(shù)據(jù)庫表5.2 數(shù)據(jù)表設計表5-1用戶信息表列名中文名列類型列注釋可否為空

5、USERID用戶號DOUBLE主鍵自增不可以USERNAME用戶姓名CHARACHER不可以USERPASS用戶密碼DOUBLE不可以LIMIT權限CHARACHER不可以表5-2貸款審批信息表列名中文名列類型列注釋可否為空ID主鍵號INT不可以APPRNUM貸款審批號CHAR(9)不可以APPRFLAG審批狀態(tài)CHAR(2)01:審批通過02:開戶03:抵押登記確認04:打印放款通知書05:資金劃撥不可以VALID有效性標志CHAR(1)1:有效2:無效不可以AGENCYBANK代辦銀行CHAR(2)不可以MULTILOAN單雙人貸款標志CHAR(1)1:單人貸款2:雙人貸款不可以LOANT

6、YPE貸款類型CHAR(2)01:商品房03:經(jīng)適房05:存量房07:安置房不可以PROTONUM開發(fā)商項目協(xié)議號CHAR(9)可以POLENUM棟號CHAR(4)可以ASSURETYPE擔保方式CHAR(1)1:抵押2:擔保不可以ASSURECOMP擔保公司CHAR(4)可以PAYEE收款人CHAR(80)不可以BANKNAME開戶銀行CHAR(40)不可以BANKACCNUM銀行賬號CHAR(30)不可以RETLOANCYCLE還款周期CHAR(1)1:月2:季3:年9:其他不可以RETLOANMODE還款方式CHAR(1)1:等額本息 2:等額本金 3:等本等息 4:利隨本清不可以APP

7、RLOANSUM審批的金額DECIMAL(16,2)不可以APPRLOANTERM審批的年限INT不可以LOANPERCENT貸款成數(shù)DECIMAL(16,2)可以BUYHOUSETYPE購房類型CHAR(1)1:現(xiàn)房2:期房不可以HOUSEADDR購房地址CHAR(80)不可以BUYHOUSEAREA購房面積DECIMAL(16,2)不可以HOUSESTRUCT房屋結(jié)構(gòu)CHAR(1)1:磚混2:鋼混3:混合4:框架5:剪力墻6:框剪7:其他不可以BUYHOUSEAMT購房房款總額DECIMAL(16,2)不可以ACCNAME1借款人一姓名CHAR(40)不可以CERID1借款人一證件號CHA

8、R(20)不可以SEX1借款人一性別CHAR(1)0:男1:女不可以AGE1借款人一年齡INT不可以ACCUNITNAM1借款人一單位CHAR(100)可以INAMT1借款人一收入DECIMAL(16,2)可以HANDSET1借款人一手機CHAR(20)可以UNITPHONE1借款人一單位電話CHAR(20)可以LINKADDRE1借款人一聯(lián)系住址CHAR(60)異地、鐵路專用可以ACCNAME2借款人二姓名CHAR(40)可以CERID2借款人二證件號CHAR(20)可以SEX2借款人二性別CHAR(1)0:男1:女可以AGE2借款人二年齡INT可以ACCUNITNAM2借款人二單位CHAR

9、(100)可以INAMT2借款人二收入DECIMAL(16,2)可以HANDSET2借款人二手機CHAR(20)可以UNITPHONE2借款人二單位電話可以LINKADDRE2借款人二聯(lián)系住址CHAR(60)可以OP柜員CHAR(4)不可以TRANSDATE審批日期DATE不可以FREEUSE1備用1CHAR(40)可以FREEUSE2備用2INT可以表5-3抵押物信息表列名中文名列類型列注釋可否為空ASSUREID主鍵號INT不可以ASSURETYPE擔保方式CHAR(1)1:保證擔保2:抵押擔保不可以ASSURECOMP擔保公司CHAR(4)01:快捷擔保02:平安擔保03:盛大擔保04:

10、安泰擔保可以MORVALUE抵押價值DOUBLE商品房 經(jīng)適房時自動默認為購房款總額其他房型需要手工輸入(單位:元)不可以MORADDRESS抵押物地址CHAR(60)不可以COMPLETEDATE竣工日期CHAR(10)當購買的是存量房時,需要錄入該字段可以OWNERNAME產(chǎn)權人姓名CHAR(40)不可以IDCARD產(chǎn)權人身份證號CHAR(18)不可以OWNERUNITNAM產(chǎn)權人單位名稱CHAR(60)不可以OWNERPHONE產(chǎn)權人電話CHAR(20)不可以ACCNAME1共有人1姓名CHAR(40)不可以CERID1共有人1身份證號CHAR(18)不可以ACCUNITNAM1共有人1

11、單位名稱CHAR(60)不可以UNITPHONE1共有人1電話CHAR(20)不可以ACCNAME2共有人2姓名CHAR(40)不可以CERID2共有人2身份證號CHAR(18)不可以ACCUNITNAM2共有人2單位名稱CHAR(60)不可以UNITPHONE2共有人2電話CHAR(20)不可以表5-4貸款開戶信息表列名中文名列類型列注釋可否為空ID主鍵號INT不可以APPRNUM貸款審批號CHAR(9)不可以ACCNAME1借款人一姓名CHAR(40)不可以CERID1借款人一身份證號CHAR(20)不可以LOANBALANCE貸款余額DECIMAL(16,2)不可以LOANTERM貸款年

12、限INT不可以MONPROFIT執(zhí)行月利率DOUBLE5年以下(含):4.20%5年以上: 4.70%以上給出的是年利率月利率用年利率/12即可得到不可以六、系統(tǒng)實現(xiàn)1、柜員登錄界面,柜員輸入用戶名(shell)、密碼(123)進入系統(tǒng)登錄頁面。如圖6-1:圖6-1登錄2、成功登錄后,進入主頁面。如圖6-2:圖6-2主頁3、輸入身份證號,進入個貸審批頁面。如圖6-3:圖6-3申請信息頁面4、輸入相關信息,進入借款人信息頁面。如圖6-4:圖6-4借款人信息頁面5、輸入相關信息,進入購房情況頁面。如圖6-5:圖6-5購房情況頁面6、輸入相關信息,進入抵押物情況頁面。如圖6-6:圖6-6抵押物情況頁

13、面7、輸入相關信息,提交,系統(tǒng)提示是否審批成功。如圖6-7:圖6-7審批成功頁面8、點擊貸款開戶,進入開戶頁面。如圖6-8:圖6-8貸款開戶頁面9、輸入審批號,進入貸款開戶信息核對頁面(系統(tǒng)自動輸出)。如圖:6-9圖6-9開戶信息核對頁面10、核對信息,確認無誤,提交后顯示是否成功。如圖6-10:圖6-10抵押登記成功頁面11、點擊抵押登記,進入抵押登記確認頁面。如圖6-11:圖6-11抵押登記確認頁面12、輸入信息,進入抵押登記信息核對頁面。如圖6-12:圖6-12抵押登記信息核對頁面13、核對信息,確認無誤,提交后顯示是否成功。如圖6-13:圖6-13抵押成功頁面14、點擊放款通知書打印,

14、進入放款通知書打印頁面。如圖6-14:圖6-14放款通知書打印頁面15、選擇銀行,進入信息顯示頁面。如圖:6-15圖6-15放款通知書信息頁面七、關鍵代碼1、LoginAction.Javapackage fund.action;import fund.service.UserFacade;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import fund.domain.User;public class LoginAction extends ActionS

15、upport private String username;private String userpass;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getUserpass() return userpass;public void setUserpass(String userpass) this.userpass = userpass;private UserFacade userFa

16、cade;public UserFacade getUserFacade() return userFacade;public void setUserFacade(UserFacade userFacade) this.userFacade = userFacade;public String login() boolean flag = false;User user=new User();user.setUsername(getUsername();user.setUserpass(getUserpass();try flag = userFacade.login(user);/ fla

17、g=true說明從數(shù)據(jù)庫中查詢出了與頁面獲得的帳號密碼相匹配的結(jié)果if (flag = true) / 將登錄用戶信息存入sessionActionContext.getContext().getSession().put("op", user.getUsername();return "loginSuccess" else return "loginError" catch (Exception e) e.printStackTrace();return "Error"2、CheckAction.javapack

18、age fund.action;import java.sql.SQLException;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import fund.service.CheckFacade;public class CheckAction extends ActionSupportprivate String cerid1;private String cerid2;public String getCerid1() return cerid1;pub

19、lic void setCerid1(String cerid1) this.cerid1 = cerid1;public String getCerid2() return cerid2;public void setCerid2(String cerid2) this.cerid2 = cerid2;private CheckFacade checkFacade;public CheckFacade getCheckFacade() return checkFacade;public void setCheckFacade(CheckFacade checkFacade) this.che

20、ckFacade = checkFacade;public String check()ActionContext.getContext().getSession().put("cerid11", getCerid1();ActionContext.getContext().getSession().put("cerid2", getCerid2();if(!getCerid1().equals("")&&getCerid2().equals("")|(!getCerid1().equals(&qu

21、ot;")&&getCerid2().equals("")if(getCerid1().length()=15|getCerid1().length()=18|getCerid2().length()=15|getCerid2().length()=18)int flag;try flag = checkFacade.Check(cerid1, cerid2);if(flag=1)return "Success1"return "checkfail" catch (SQLException e) e.prin

22、tStackTrace();return "Error"else return "Error"else if(!getCerid1().equals("")&&!getCerid2().equals("")if(getCerid1().length()=15|getCerid1().length()=18)&&(getCerid2().length()=15|getCerid2().length()=18)&&(!getCerid1().equals(getCerid

23、2()return "Success2"else return "Error"elsereturn "Error"3、CheckActionDAOImpl.javapackage fund.persistence;import java.sql.SQLException;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class CheckDAOImpl extends Hibernat

24、eDaoSupport implements CheckDAOpublic int Check(String cerid1, String cerid2) throws SQLException List l1=getHibernateTemplate().find("select o.apprloansum from Open o where o.cerid1=?",cerid1);if(l1.size()>0)Double apprloansum1=(Double)l1.get(0);if(apprloansum1>0)return 0; /個人不可以有未還

25、清的公積金貸款(貸款余額大于零)return 1;4、ApplyAction.javapackage fund.action;import com.opensymphony.xwork2.ActionSupport;import fund.domain.Apply;import fund.service.ApplyFacade;import fund.service.ApplyFacadeImpl;public class ApplyAction extends ActionSupportprivate String relation;private String loantype;priva

26、te Double appcount;private int appyearlimit;private String retloanmode;private String retloancycle;private String bankname;public String getRelation() return relation;public void setRelation(String relation) this.relation = relation;public String getLoantype() return loantype;public void setLoantype

27、(String loantype) this.loantype = loantype;public Double getAppcount() return appcount;public void setAppcount(Double appcount) this.appcount = appcount;public int getAppyearlimit() return appyearlimit;public void setAppyearlimit(int appyearlimit) this.appyearlimit = appyearlimit;public String getRe

28、tloanmode() return retloanmode;public void setRetloanmode(String retloanmode) this.retloanmode = retloanmode;public String getRetloancycle() return retloancycle;public void setRetloancycle(String retloancycle) this.retloancycle = retloancycle;public String getBankname() return bankname;public void s

29、etBankname(String bankname) this.bankname = bankname;public ApplyFacade getApplyFacade() return applyFacade;public void setApplyFacade(ApplyFacade applyFacade) this.applyFacade = applyFacade;private ApplyFacade applyFacade;public ApplyAction() applyFacade= new ApplyFacadeImpl();public String apply()

30、int flag;Apply apply=new Apply();apply.setRelation(getRelation();apply.setLoantype(getLoantype();apply.setAppcount(getAppcount();apply.setAppyearlimit(getAppyearlimit();apply.setRetloanmode(getRetloanmode();apply.setRetloancycle(getRetloancycle();apply.setBankname(getBankname();try if(getAppyearlimi

31、t()>30)return "Error"flag = applyFacade.apply(apply);if (flag = 1) /ActionContext.getContext().getSession().put("op", user);return "applySuccess" else if(flag=2)return "applyError2"else return "applyError" catch (Exception e) e.printStackTrace();r

32、eturn "Error"5、ApplyDAOImpl.javapackage fund.persistence;import java.sql.SQLException;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.opensymphony.xwork2.ActionContext;import fund.domain.Apply;public class ApplyDAOImpl extends HibernateDaoSupport implements

33、 ApplyDAOpublic int apply(Apply apply) throws SQLException Double appc=apply.getAppcount();if(appc>200000)return 2; /單身職工最高貸款金額為(20)萬元ActionContext.getContext().getSession().put("apply",apply);return 1;6、AssureAction.javapackage fund.action;import com.opensymphony.xwork2.ActionSupport;i

34、mport fund.domain.Assure;import fund.service.AssureFacade;public class AssureAction extends ActionSupportprivate Assure assure;public Assure getAssure() return assure;public void setAssure(Assure assure) this.assure = assure;private AssureFacade assureFacade;public AssureFacade getAssureFacade() ret

35、urn assureFacade;public void setAssureFacade(AssureFacade assureFacade) this.assureFacade = assureFacade;public String assure()int flag;tryflag=assureFacade.assure(assure);if(flag=1)return "Error1"if(flag=2)return "Error2"if(flag=3)return "Error3"if(flag=4)return "

36、Error4"if(flag=6)return "Error6"assure.setState(1);return "Success"catch (Exception e) e.printStackTrace();return "Error"7、AssureDAOImpl.javapackage fund.persistence;import java.sql.SQLException;import java.util.Calendar;import java.util.Date;import org.springframe

37、work.orm.hibernate3.support.HibernateDaoSupport;import com.opensymphony.xwork2.ActionContext;import fund.domain.Apply;import fund.domain.Applyloan;import fund.domain.Assure;import fund.domain.House;import fund.domain.Loan;public class AssureDAOImpl extends HibernateDaoSupport implements AssureDAOpub

38、lic int assure(Assure assure) throws SQLException ActionContext.getContext().getSession().put("assure",assure);House hou=(House)ActionContext.getContext().getSession().get("house");Apply app=(Apply)ActionContext.getContext().getSession().get("apply");Assure ass=(Assure)

39、ActionContext.getContext().getSession().get("assure");Loan loan=(Loan)ActionContext.getContext().getSession().get("loan");Double appc=app.getAppcount();Double amt=hou.getBuyhouseamt();Double fir=hou.getFiramt();if(appc>amt+fir)return 1; /貸款金額必須小于等于(購房總價-首付款)Double loanpercent;

40、if(hou.getBuyhousearea()>90)loanpercent=0.7;elseloanpercent=0.8;ActionContext.getContext().getSession().put("loanpercent", loanpercent);if(appc>ass.getMorvalue()*loanpercent)return 2; /申請金額不得超過(抵押價值¡Á貸款成數(shù))Loan lo=(Loan)ActionContext.getContext().getSession().get("loan&

41、quot;);if(lo.getSex1().equals("1")if(lo.getAge()+app.getAppyearlimit()>60)return 3; /現(xiàn)年齡+貸款年限<=法定退休年齡 男為( 60 )歲 elseif(lo.getAge()+app.getAppyearlimit()>55)return 4; /現(xiàn)年齡+貸款年限<=法定退休年齡 女為(55 )歲getHibernateTemplate().save(ass);Applyloan applyloan=new Applyloan();Calendar c=Calend

42、ar.getInstance();int y=c.getTime().getYear()+1900;int last=getHibernateTemplate().find("from Applyloan").size();last+;String la="00000"+last;la=la.substring(la.length()-5);String apprnum="01"+y+la;applyloan.setApprnum(apprnum);ActionContext.getContext().getSession().put

43、("apprnum", apprnum);applyloan.setApprflag("01");applyloan.setValid("1");applyloan.setAgencybank(app.getBankname();applyloan.setMultiloan("1");applyloan.setLoantype("01");applyloan.setProtonum(hou.getProname();applyloan.setPolenum(hou.getPolenum();ap

44、plyloan.setAssurecomp(ass.getAssurecomp();applyloan.setAssuretype(ass.getAssuretype();applyloan.setPayee(hou.getRecname();applyloan.setBankname(app.getBankname();applyloan.setBankccnum(hou.getRecaccount();applyloan.setRetloancycle(app.getRetloancycle();applyloan.setRetloanmode(app.getRetloanmode();a

45、pplyloan.setApprloansum(app.getAppcount();applyloan.setApprloanterm(app.getAppyearlimit();applyloan.setLoanpercent(loanpercent);ActionContext.getContext().getSession().remove("loanpercent");applyloan.setBuyhousetype(hou.getBuyhousetype();applyloan.setHouseaddr(hou.getHouseaddr();applyloan.

46、setBuyhousearea(hou.getBuyhousearea();applyloan.setHousestruct(hou.getHousestruct();applyloan.setBuyhouseamt(hou.getBuyhouseamt();applyloan.setAccname1(loan.getAccname1();applyloan.setCerid1(loan.getCerid1();applyloan.setSex1(loan.getSex1();applyloan.setAge1(loan.getAge();applyloan.setAccunitnam1(lo

47、an.getAccunitnam1();applyloan.setInamt1(loan.getMonsalary();applyloan.setUnitphone1(ass.getUnitphone1();applyloan.setLinkaddre1(loan.getLinkaddre1();applyloan.setAccname2("");applyloan.setCerid2("");applyloan.setSex2("");applyloan.setAge2(1);applyloan.setAccunitnam2(&qu

48、ot;");applyloan.setInamt2(0);applyloan.setHandset2("");applyloan.setUnitphone2("");applyloan.setLintaddre2("");applyloan.setOp("");Date d=new Date();applyloan.setTransdate(d);applyloan.setFreeuse1("");applyloan.setFreeuse2(1);getHibernateTemplat

49、e().save(applyloan);ActionContext.getContext().getSession().remove("house");ActionContext.getContext().getSession().remove("loan");ActionContext.getContext().getSession().remove("apply");ActionContext.getContext().getSession().remove("assure");return 5;8、Assur

50、eAction.javapackage fund.action;import com.opensymphony.xwork2.ActionSupport;import fund.domain.Assure;import fund.service.AssureFacade;public class AssureAction extends ActionSupportprivate Assure assure;public Assure getAssure() return assure;public void setAssure(Assure assure) this.assure = assu

51、re;private AssureFacade assureFacade;public AssureFacade getAssureFacade() return assureFacade;public void setAssureFacade(AssureFacade assureFacade) this.assureFacade = assureFacade;public String assure()int flag;tryflag=assureFacade.assure(assure);if(flag=1)return "Error1"if(flag=2)return "Error2"if(flag=3)re

溫馨提示

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

評論

0/150

提交評論