最代码广告位
fengzf的gravatar头像
fengzf2017-10-27 10:39:02

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

1、项目需求(本项目为同行未来小舅子浪潮实习的面试题,我给做的,原创)

1.1、月工资计税办法

应纳税额 = 月工资应纳税所得额×适用税率-速算扣除数

月工资应纳税所得额 = 计税月工资额 - 3500

注: 3500 为个人所得税起征点,即税法规定的费用扣除额。

1.2、年终奖综合计税(不拆分、拆分一月、拆两月份)

2、开发平台与技术

技术架构:SpringMVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp

开发平台:Eclipse、Tomcat7、JDK1.7

3、项目设计

3.1、模型设计

国家税率标准的展示存表(income_tax_rate),对应的实体类:com.tax.entity.TaxRate

income_tax_rate结构如下:

id

int

ID(主键,自增长类型)

title

varchar

标题

floorAmount

decimal

下限

upperAmount

decimal

上限

tax_rate

decimal

税率

deduction

int

速算扣除数

createtime

datetime

创建时间

isdelete

int

是否删除:0、是;1、否

state

int

状态:0、屏蔽;1、激活

 

对查询计算结果的保存记录表(tax_query_record),对应的实体类:com.tax.entity.Record

tax_query_record表结构如下:

id

int

ID(主键,自增长类型)

category_code

int

类别编码:1、月工资;2、年终奖

category_name

varchar

类别名称

yearBonusAmount

decimal

年终奖金额

split_type

varchar

年终奖拆分方式

amount

decimal

税前月工资速

rate

decimal

执行税率

deduction_amount

decimal

扣除数

amount_tax

decimal

税后金额

note

varchar

备注

createtime

datetime

创建时间

ip

varchar

请求客户端IP地址

 

为了方便捕捉异常发生的接口以及原因类型等信息,创建一个异常记录表errorreport,程序抛异常时记录到数据库中,抛异常的原因可能是程序不健壮,方便开发者维护优化。对应的实体类:com.tax.entity.ErrorReport

Errorreport表结构如下:

id

int

ID(主键,自增长类型)

actionurl

varchar

异常路径

request_method

varchar

请求方式(post或get)

cdate

datetime

异常产生时间

descp

varchar

描述

ip

varchar

请求客户端IP地址

3.2、项目相关调用

1、项目启动后,首先请求"/",进入页面\WebContent\WEB-INF\views\tax.jsp页面。

页面加载时以post方式请求右侧国家税率标准表

接口

http://localhost:8080/taxDemo/searchTaxRate

请求方式

POST

请求参数

pageNumber   Integer    页码(第1页)

pageSize     Integer   每页显示条数(这里定义最多显示100条)

返回数据

(GSON)

{
    "page":1,
    "rows":[
        {
            "createtime":"2017-05-13",
            "deduction":0,
            "floorAmount":0,
            "id":1,
            "isdelete":1,
            "state":1,
            "taxRate":0.03,
            "taxRateStr":"3%",
            "title":"不超过1500",
            "upperAmount":1500
        },
        {
            "createtime":"2017-05-13",
            "deduction":105,
            "floorAmount":1500,
            "id":2,
            "isdelete":1,
            "state":1,
            "taxRate":0.1,
            "taxRateStr":"10%",
            "title":"超过1500元至4500",
            "upperAmount":4500
        },
        {
            "createtime":"2017-05-13",
            "deduction":555,
            "floorAmount":4500,
            "id":3,
            "isdelete":1,
            "state":1,
            "taxRate":0.2,
            "taxRateStr":"20%",
            "title":"超过4500元至9000",
            "upperAmount":9000
        },
        {
            "createtime":"2017-05-13",
            "deduction":1005,
            "floorAmount":9000,
            "id":4,
            "isdelete":1,
            "state":1,
            "taxRate":0.25,
            "taxRateStr":"25%",
            "title":"超过9000元至35000",
            "upperAmount":35000
        },
        {
            "createtime":"2017-05-13",
            "deduction":2755,
            "floorAmount":35000,
            "id":5,
            "isdelete":1,
            "state":1,
            "taxRate":0.3,
            "taxRateStr":"30%",
            "title":"超过35000元至55000",
            "upperAmount":55000
        },
        {
            "createtime":"2017-05-13",
            "deduction":5505,
            "floorAmount":55000,
            "id":6,
            "isdelete":1,
            "state":1,
            "taxRate":0.35,
            "taxRateStr":"35%",
            "title":"超过55000元至80000",
            "upperAmount":80000
        },
        {
            "createtime":"2017-05-13",
            "deduction":13505,
            "floorAmount":80000,
            "id":7,
            "isdelete":1,
            "state":1,
            "taxRate":0.45,
            "taxRateStr":"45%",
            "title":"超过80000",
            "upperAmount":0
        }
    ],
    "total":7
}

 

2、选择项目,填入税前工资,前端会对输入数值进行验证,

金额输入验证用到两个正则表达式

var reg = /^[0]{1}[.]{1}[0-9]{1,2}$/;  /*0开头的数字串*/

var reg = /^[1-9]{1}[0-9]{0,10}[.]{0,1}[0-9]{0,2}$/; /*非0开头的数字*/  

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

若输入非金额类型会自动清空

点击计算,请求必要输入的金额进行非空验证,金额格式验证,验证通过post方式请求后台接口进行计算

接口

http://localhost:8080/taxDemo/calculation

请求方式

POST

请求参数

category        Integer     项目分类:1、月工资;2、年终奖

amount           BigDecimal    税前工资

yearBonusAmount  BigDecimal    年终奖金额

spiltType        Integer        年终奖拆分方式:1、不拆分;2、拆分一月;   3、拆两月分

返回数据

(GSON)

样例

 

1、月工资计税返回样例(记录存库并返回)

{

    "amount": 5000,

    "amountTax": 4955,

    "categoryCode": 1,

    "categoryName": "月工资",

    "createtime": "2017-05-22",

    "deductionAmount": 45,

    "id": 129,

    "ip": "192.168.169.1",

    "monthAmount": 1500,

    "note": "",

    "rate": 0.03,

    "splitType": "",

    "taxRateStr": "3%",

    "yearBonusAmount": 0

}

 

2、年终奖计税返回样例(记录存库并返回)

{

    "amount": 5000,

    "amountTax": 45105,

    "categoryCode": 2,

    "categoryName": "年终奖",

    "createtime": "2017-05-22",

    "deductionAmount": 4895,

    "id": 130,

    "ip": "192.168.169.1",

    "monthAmount": 0,

    "note": "",

    "rate": 0,

    "splitType": "不拆分",

    "taxRateStr": "不计税",

    "yearBonusAmount": 50000

}

 

3.3、项目结构设计

Action:处理请求

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

Service:处理业务逻辑

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

Dao层:负责与数据库的交互

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

JSP负责页面及数据的展示(前端样式css,及功能方法js)

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

4、流程图

4.1、月工资个人所得税计算算法流程图

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

4.2、年终奖个人所得税计算算法流程图

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

5、运行截图

启动项目,浏览器地址栏里输入:http://localhost:8080/taxDemo

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

1、月工资计税截图展示

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

点击计算后

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

2、年终奖计税截图展示

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

3、错误提示

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)

注:

1、sql语句百度网盘下载地址

链接: https://pan.baidu.com/s/1o8qV5Ui 密码: xz1j

2、所需要的jar包 

链接:https://pan.baidu.com/s/1hsnHtOS

下载lib.rar并解压,将jar文件放到项目的lib目录下,放入的截图应该是这样的

java web个人所得税计算工具(Spring MVC+Hibernate++MySql+jQuery+BootStrap+css+js+jsp)


打赏

已有3人打赏

8战魂5无双8的gravatar头像最代码客服的gravatar头像最代码官方的gravatar头像

文件名:项目源码.rar,文件大小:316.96K下载
最代码最近下载分享源代码列表最近下载
8战魂5无双8 LV372019年12月7日
太阳太阳月亮星星
xzl8023xwq LV122019年10月22日
月亮月亮月亮
zhxtatata LV42019年6月27日
月亮
qianbaobao LV12019年5月27日
星星
安宇12345 LV132019年4月18日
月亮月亮月亮星星
15673237576 LV12019年3月16日
星星
18392130476 LV62019年1月28日
月亮星星星星
fsj0122 LV12019年1月16日
星星
751926486 LV42019年1月6日
月亮
tomarsli LV512018年12月6日
太阳太阳太阳星星星星星星
最代码最近浏览分享源代码列表最近浏览
165456454988 LV21月9日
星星星星
152162355 LV21月5日
星星星星
gldsp123 LV12019年12月22日
星星
小雨牛 LV42019年12月20日
月亮
8战魂5无双8 LV372019年12月7日
太阳太阳月亮星星
阿时23428 LV142019年12月2日
月亮月亮月亮星星星星
rad911 LV112019年11月30日
月亮月亮星星星星星星
a10389307442019年11月28日
暂无贡献等级
2308478564 LV132019年11月26日
月亮月亮月亮星星
11419047352019年11月24日
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友