悟道子的gravatar头像
悟道子 2017-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 下载
最代码最近下载分享源代码列表最近下载
最代码-宋家辉  LV61 2023年8月5日
binbin123123  LV1 2020年6月2日
8战魂5无双8  LV43 2019年12月7日
xzl8023xwq  LV13 2019年10月22日
zhxtatata  LV4 2019年6月27日
qianbaobao  LV1 2019年5月27日
安宇12345  LV15 2019年4月18日
15673237576  LV1 2019年3月16日
18392130476  LV6 2019年1月28日
fsj0122  LV1 2019年1月16日
最代码最近浏览分享源代码列表最近浏览
暂无贡献等级
吞吞吐吐她  LV6 3月27日
暂无贡献等级
最代码-宋家辉  LV61 2023年8月5日
uni-code_0123  LV1 2023年8月4日
qazws123  LV1 2023年6月7日
sweetbox  LV10 2023年4月16日
泡面不会打野  LV1 2022年12月30日
tonghao  LV18 2022年12月9日
111114758  LV2 2022年11月27日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友