coding
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)


打赏

已有2人打赏

最代码客服的gravatar头像最代码官方的gravatar头像

文件名:项目源码.rar,文件大小:316.96K下载
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友