实训报告最终版.docx

上传人:b****6 文档编号:8930169 上传时间:2023-02-02 格式:DOCX 页数:23 大小:256.54KB
下载 相关 举报
实训报告最终版.docx_第1页
第1页 / 共23页
实训报告最终版.docx_第2页
第2页 / 共23页
实训报告最终版.docx_第3页
第3页 / 共23页
实训报告最终版.docx_第4页
第4页 / 共23页
实训报告最终版.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

实训报告最终版.docx

《实训报告最终版.docx》由会员分享,可在线阅读,更多相关《实训报告最终版.docx(23页珍藏版)》请在冰豆网上搜索。

实训报告最终版.docx

实训报告最终版

项目组名称

班级

代码总行数

项目名称

住房公积金管理系统

1.项目来源及目的

住房公积金为中国内地的一种用于住房的社会福利。

它属于职工基本福利“五险一金”中的“一金”,是指国家机关、国有企业、城镇集体企业、外商投资企业、城镇私营企业及其他城镇企业、事业单位、民办非企业单位、社会团体(以下统称单位)及其在职职工缴存的长期住房储金;用于职工购买、建造、翻建、大修以及装修自住住房。

缴存分为两部分,即职工个人缴存部分和所在单位缴存部分,两部分数额相等,均汇入个人帐户;缴存之后全部归属于职工个人所有,并设有个人住房公积金专门个人帐户。

个人缴存比例不低于职工本人上一年度月平均工资的5%。

缴存公积金的职工可以向公积金中心申请公积金贷款,公积金贷款利率较商业贷款利率低。

但职工在缴存公积金期间,非《公积金管理条例》中所明示的原因外,不得提取公积金。

为了加强对住房公积金的管理,维护住房公积金所有者的合法权益,促进城镇住房建设,提高城镇居民的居住水平,制定本条例。

同时也是国务院为了加强对住房公积金的管理,维护住房公积金所有者的合法权益,促进城镇住房建设,提高城镇居民的居住水平而制定的条例,适用于中华人民共和国境内住房公积金的缴存、提取、使用、管理和监督。

2.项目内容

图2.1住房公积金用例图

3类图

3.1住房公积金数据逻辑bean设计类图

图3.1住房公积金数据逻辑类图

3.2住房公积金管理系统数据表设计

表一表示的是数据库系统表,在本张表当中有5个字段,分别是键值信息字段表示主键值信息数据类型为char型,第二个字段名是seq表示当前序列号用于表示单位账户或者个人账户的字段,第三个字段表示的最大序号的字段表示的是单位账户最大不能超过这个值,第四和第五个字段分别表示对数据的描述字符类型是char型。

表一系统信息表

列名

中文名

列类型

列注释

可否为空

默认值

SEQNAME

键值信息

CHARACTER(20)

可自定义序号键值信息,按此产生序号。

不可以

SEQ

当前序号

INTEGER

从1开始,每次取完递增

不可以

MAXSEQ

最大序号

INTEGER

不可以

9999999

DESC

描述

CHARACTER(40)

不可以

FREEUSE1

备用1

CHARACTER(20)

可以

表3-1住房公积金系统参数表

表二表示的单位信息表,在这张表当中有23个字段分别表示如下。

单位公积金账户:

自动生成,取系统参数表中键为【UNITACCNUM】对应记录的【当前序号】,帐号长度12位字符,不足12位前面补0。

公积金余额:

等于单位下所有个人的【公积金余额】之和,开户时默认为0。

缴存基数:

等于单位下所有个人的【缴存基数】之和,开户时默认为0。

单位比例:

页面录入。

个人比例:

页面录入。

单位月应缴额:

等于单位下所有非销户个人的【单位月应缴额】之和,开户时默认为0。

个人月应缴额:

等于单位下所有非销户个人的【个人月应缴额】之和,开户时默认为0。

单位人数:

等于单位下所有非销户个人的人数,开户时默认为0。

最后汇缴月:

开户时默认为1899-12-01,待汇缴时改为实际汇缴年月,格式为:

汇缴年份-月份-01。

如:

最后汇缴月实际为2010年10月,则该字段存储【2010-10-01】。

公积金中心机构代码:

默认为0110。

柜员:

默认为111111。

建立日期:

开户时插入当前系统日期,格式为yyyy-mm-dd。

 

表二单位账户信息表

列名

中文名

列类型

列注释

可否为空

默认值

UNITACCNUM

单位公积金账号

CHARACTER(12)

UNITACCNAME

单位名称

CHARACTER(100)

不可以

UNITADDR

单位地址

CHARACTER(60)

不可以

ORGCODE

组织机构代码

CHARACTER(20)

不可以

UNITCHAR

单位类别

CHARACTER

(1)

1-企业

2-事业

3-机关

4-团体

5-其他

不可以

UNITKIND

企业类型

CHARACTER(3)

110-国有经济

120-集体经济

130-股份合作企业

140-联营企业

150-有限责任公司

160-股份有限公司

170-私营企业

190-其他企业

200-港、澳、台商投资企业

300-外商投资企业

900-其他

不可以

SALARYDATE

发薪日期

CHARACTER

(2)

可以

UNITPHONE

联系电话

CHARACTER(20)

不可以

UNITLINKMAN

单位联系人

CHARACTER(24)

不可以

UNITAGENTPAPNO

经办人身份证号码

CHARACTER(20)

可以

ACCSTATE

账户状态

CHARACTER

(1)

0-正常

9-销户

不可以

BALANCE

公积金余额

DECIMAL(16,2)

不可以

BASENUMBER

缴存基数

DECIMAL(16,2)

不可以

UNITPROP

单位比例

DECIMAL(6,3)

不可以

PERPROP

个人比例

DECIMAL(6,3)

不可以

UNITPAYSUM

单位月应缴额

DECIMAL(16,2)

不可以

PERPAYSUM

个人月应缴额

DECIMAL(16,2)

不可以

PERSNUM

单位人数

INTEGER

非销户人数

不可以

LASTPAYDATE

最后汇缴月

DATE

不可以

1899-12-01

INSTCODE

机构代码

CHARACTER(8)

不可以

默认为0110

OP

柜员

CHARACTER(4)

不可以

默认为

111111

CREATDATE

建立日期

DATE

不可以

REMARK

备注

CHARACTER(64)

可以

表3-2住房公积金单位信息表

 

个人公积金帐号:

自动生成,取系统参数表中键值为【PERACCNUM】对应记录的【当前序号】,帐号长度12位字符,不足12位前面补0。

单位公积金帐号:

页面录入。

开户日期:

个人开户时的系统日期。

公积金余额:

开户时为0,当进行汇缴或提取等资金类业务时修改此余额及其单位的公积金余额。

个人账户状态:

开户时默认为0。

缴存基数:

页面录入。

单位比例:

取单位信息的单位比例,在0.05-0.12范围之内,否则报错。

个人比例:

取单位信息的个人比例,在0.05-0.12范围之内,否则报错。

最后汇缴月:

开户时默认为1899-12-01,待汇缴时改为实际汇缴年月,格式为:

汇缴年份-月份-01。

如:

最后汇缴月实际为2010年10月,则该字段存储【2010-10-01】。

表三个人开户信息表

列名

中文名

列类型

列注释

可否为空

默认值

ACCNUM

个人公积金账号

CHARACTER(12)

0

不可以

UNITACCNUM

单位公积金账号

CHARACTER(12)

0

不可以

OPENDATE

开户日期

DATE

BALANCE

公积金余额

DECIMAL(16,2)

PERACCSTATE

个人账户状态

CHARACTER

(1)

BASENUMBER

缴存基数

DECIMAL(16,2)

UNITPROP

单位比例

DECIMAL(6,3)

INDIPROP

个人比例

DECIMAL(6,3)

LASTPAYDATE

最后汇缴月

DATE

1899-12-01

UNITMONPAYSUM

单位月应缴额

DECIMAL(16,2)

PERMONPAYSUM

个人月应缴额

YPAYAMT

本年汇补缴额

DECIMAL(16,2)

自然年度

YDRAWAMT

年提取额

DECIMAL(16,2)

自然年度

YINTERESTBAL

年度结息

DECIMAL(16,2)

INSTCODE

机构代码

CHARACTER(8)

不可以

默认为0110

OP

柜员

CHARACTER(4)

不可以

默认为111111

REMARK

备注

CHARACTER(64)

可以

表3-3住房发奖金个人信息

4算法设计

4.1住房公积金管理系统活动图

图4.1住房公积金活动图

 

5.项目运行界面

5.1本图片是住房公积金登录窗口。

图5-1管理员登录窗口界面

5.2住房公积金管理系统的主界面。

图5-2住房公积金主界面

5.3住房公积金管理系统企业开户界面。

图5-3住房公积金企业开户界面

5.4住房公积金管理系统查询企业资料的界面。

图5-4住房公积金企业信息显示界面

5.5住房公积金管理系统按账号查询的结果。

图5-5住房公积金按账号查询界面

5.6住房公积金管理系统显示个人信息资料。

图5-6住房公积金显示个人信息资料

6.关键代码(要求在类的定义以及方法定义的前面给出相关描述信息)

6.1添加单位信息的关键代码。

publicintadd(TB002tb,Connectioncon)throwsException{

Stringsql="insertintotb002values(?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

)";

PreparedStatementpstmt=con.prepareStatement(sql);

pstmt.setString(1,tb.getUNITACCNUM());

pstmt.setString(2,tb.getUNITACCNAME());

pstmt.setString(3,tb.getUNITADDR());

pstmt.setString(4,tb.getORGCODE());

pstmt.setString(5,tb.getUNITCHAR());

pstmt.setString(6,tb.getUNITKIND());

pstmt.setString(7,tb.getSALARYDATE());

pstmt.setString(8,tb.getUNITPHONE());

pstmt.setString(9,tb.getUNITLINKMAN());

pstmt.setString(10,tb.getUNITAGENTPAPNO());

pstmt.setString(11,tb.getACCSTATE());

pstmt.setBigDecimal(12,tb.getBALANCE());

pstmt.setBigDecimal(13,tb.getBASENUMBER());

pstmt.setBigDecimal(14,tb.getUNITPROP());

pstmt.setBigDecimal(15,tb.getPERPROP());

pstmt.setBigDecimal(16,tb.getUNITPAYSUM());

pstmt.setBigDecimal(17,tb.getPERPAYSUM());

pstmt.setLong(18,tb.getPERSNUM());

pstmt.setDate(19,tb.getLASTPAYDATE());

pstmt.setString(20,tb.getINSTCODE());

pstmt.setString(21,tb.getOP());

pstmt.setDate(22,tb.getCREATDATE());

pstmt.setString(23,tb.getREMARK());

returnpstmt.executeUpdate();

}

6.2查询单位总记录数的关键代码。

publicintUnitCount(Connectioncon)throwsException{

Stringsql="selectcount(*)astotalfromtb002";

PreparedStatementpstmt=con.prepareStatement(sql);

ResultSetrs=pstmt.executeQuery();

if(rs.next()){

returnrs.getInt("total");

}else{

return0;

}

}

6.3查询单位指定条数的关键代码。

publicResultSetunitList(Connectioncon,PageBeanpageBean)throwsException{

StringBuffersb=newStringBuffer("select*fromtb002");

if(pageBean!

=null){

sb.append("limit"+pageBean.getStart()+","+pageBean.getRows());

}

PreparedStatementpstmt=con.prepareStatement(sb.toString());

returnpstmt.executeQuery();

}

6.4按单位名称模糊匹配查询的关键代码。

publicResultSetUnitSearchByName(Connectioncon,StringUNITACCNAME)throwsException{

StringBuffersql=newStringBuffer("select*fromtb002");

if(StringUtil.isNotEmpty(UNITACCNAME)){

sql.append("andUNITACCNAMElike'%"+UNITACCNAME+"%'");

}

PreparedStatementpstmt=con.prepareStatement(sql.toString().replaceFirst("and","where"));

returnpstmt.executeQuery();

}

}

6.5个人开户的关键代码。

publicintadd(Connectioncon,TB003tb)throwsException{

Stringsql="insertintotb003values(?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

)";

PreparedStatementpstmt=con.prepareStatement(sql);

pstmt.setString(1,tb.getACCNUM());

pstmt.setString(2,tb.getUNITACCNUM());

pstmt.setDate(3,tb.getOPENDATE());

pstmt.setBigDecimal(4,tb.getBALANCE());

pstmt.setString(5,tb.getPERACCSTATE());

pstmt.setBigDecimal(6,tb.getBASENUMBER());

pstmt.setBigDecimal(7,tb.getUNITPROP());

pstmt.setBigDecimal(8,tb.getINDIPROP());

pstmt.setDate(9,tb.getLASTPAYDATE());

pstmt.setBigDecimal(10,tb.getUNITMONPAYSUM());

pstmt.setBigDecimal(11,tb.getPERMONPAYSUM());

pstmt.setBigDecimal(12,tb.getYPAYAMT());

pstmt.setBigDecimal(13,tb.getYDRAWAMT());

pstmt.setBigDecimal(14,tb.getYINTERESTBAL());

pstmt.setString(15,tb.getINSTCODE());

pstmt.setString(16,tb.getOP());

pstmt.setString(17,tb.getREMARK());

pstmt.setString(18,tb.getUNITNAME());

pstmt.setString(19,tb.getIDCARD());

pstmt.setString(20,tb.getPERSONNAME());

returnpstmt.executeUpdate();

}

6.6个人开户的所有信息显示关键代码。

publicintUnitCount(Connectioncon)throwsException{

Stringsql="selectcount(*)astotalfromtb003";

PreparedStatementpstmt=con.prepareStatement(sql);

ResultSetrs=pstmt.executeQuery();

if(rs.next()){

returnrs.getInt("total");

}else{

return0;

}

}

6.7查询个人信息条数的关键代码。

publicintUnitCount(Connectioncon)throwsException{

Stringsql="selectcount(*)astotalfromtb003";

PreparedStatementpstmt=con.prepareStatement(sql);

ResultSetrs=pstmt.executeQuery();

if(rs.next()){

returnrs.getInt("total");

}else{

return0;

}

}

6.8查询个人公积金账号的关键代码。

publicResultSetcount(Connectioncon)throwsException{

Stringsql="select*fromtb004orderbyPERACCNUMDESClimit1";

PreparedStatementpstmt=con.prepareStatement(sql);

returnpstmt.executeQuery();

}

6.9增加账号到表中的关键代码。

publicintadd(Connectioncon,StringPERACCNUM)throwsException{

Stringsql="insertintotb004(PERACCNUM)values(?

)";

PreparedStatementpstmt=con.prepareStatement(sql);

pstmt.setString(1,PERACCNUM);

returnpstmt.executeUpdate();

}

6.10按照个人账号实现模糊匹配的关键代码。

publicResultSetPersonSearchById(Connectioncon,StringACCNUM)throwsException{

StringBuffersql=newStringBuffer("select*fromtb003");

if(StringUtil.isNotEmpty(ACCNUM)){

sql.append("andACCNUMlike'%"+ACCNUM+"%'");

}

PreparedStatementpstmt=con.prepareStatement(sql.toString().replaceFirst("and","where"));

returnpstmt.executeQuery();

}

6.11按单位账户查询信息关键代码。

publicResultSetexecuteQuery(Connectioncon)throwsException{

PreparedStatementpstmt=con.prepareStatement("selectUNITACCNUMfromtb002");

returnpstmt.executeQuery();

}

6.12处理页面中文乱码的关键代码。

publicclassEncondingFilterimplementsFilter{

privateStringtargetEncoding="gb2312";

privateFilterConfigfilterConfig;

publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,

FilterChainchain)throwsIOException,ServletException{

//System.out.println("filterrun.");

HttpServletRequestrequest=(HttpServletRequest)arg0;

HttpServletResponseresponse=(HttpServletResponse)arg1;

request.setCharacterEncoding(targetEncoding);//把请求用指定的方式编码

response.setCharacterEncoding(targetEncoding);

chain.doFilter(arg0,arg1);

}

publicvoidinit(FilterConfigconfig)throwsServletException{

this.filterConfig=config;

this.ta

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1