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) |
{ |
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开头的数字*/
若输入非金额类型会自动清空
点击计算,请求必要输入的金额进行非空验证,金额格式验证,验证通过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:处理请求
Service:处理业务逻辑
Dao层:负责与数据库的交互
JSP负责页面及数据的展示(前端样式css,及功能方法js)
4、流程图
4.1、月工资个人所得税计算算法流程图
4.2、年终奖个人所得税计算算法流程图
5、运行截图
启动项目,浏览器地址栏里输入:http://localhost:8080/taxDemo
1、月工资计税截图展示
点击计算后
2、年终奖计税截图展示
3、错误提示
注:
1、sql语句百度网盘下载地址
链接: https://pan.baidu.com/s/1o8qV5Ui 密码: xz1j
2、所需要的jar包
链接:https://pan.baidu.com/s/1hsnHtOS
下载lib.rar并解压,将jar文件放到项目的lib目录下,放入的截图应该是这样的
猜你喜欢
- JavaWeb毕业设计---人力资源管理系统
- JavaWeb图书销售管理系统/网上书店
- java web网页版redis客户端工具
- JavaWeb电子商城项目分享(可做毕业设计)
- JavaWeb库存管理系统代码下载
- Javaweb注册登录、增删改查实现的简单通讯录系统
- jsp+servlet+jdbc开发最简单的在线交友系统,javaweb入门学习必备实例
- 基于Javaweb jsp servlet mysql bootstrap layui jQuery的图书管理系统
- javascript简单调色板工具
- HTML+CSS+JS代码格式化工具
- java实现莱文斯坦算法(计算相似度)
- java自动化测试工具[原]
- /
- /项目源码
- /项目源码/tax.sql
- /项目源码/taxDemo
- /项目源码/taxDemo/.classpath
- /项目源码/taxDemo/.project
- /项目源码/taxDemo/.settings
- /项目源码/taxDemo/.settings/.jsdtscope
- /项目源码/taxDemo/.settings/org.eclipse.core.resources.prefs
- /项目源码/taxDemo/.settings/org.eclipse.jdt.core.prefs
- /项目源码/taxDemo/.settings/org.eclipse.wst.common.component
- /项目源码/taxDemo/.settings/org.eclipse.wst.common.project.facet.core.xml
- /项目源码/taxDemo/.settings/org.eclipse.wst.jsdt.ui.superType.container
- /项目源码/taxDemo/.settings/org.eclipse.wst.jsdt.ui.superType.name
- /项目源码/taxDemo/src
- /项目源码/taxDemo/src/com
- /项目源码/taxDemo/src/com/tax
- /项目源码/taxDemo/src/com/tax/controller
- /项目源码/taxDemo/src/com/tax
- /项目源码/taxDemo/src/com
- /项目源码
- 精 JavaWeb图书销售管理系统/网上书店
- 证精 JavaWeb毕业设计---人力资源管理系统
- 证 jsp+servlet+jdbc开发最简单的在线交友系统,javaweb入门学习必备实例
- 原证 基于Javaweb jsp servlet mysql bootstrap layui jQuery的图书管理系统
- 证 JavaWeb电子商城项目分享(可做毕业设计)
- 证 Javaweb注册登录、增删改查实现的简单通讯录系统
- 证 JavaWeb库存管理系统代码下载
- 证精 基于jsp+servlet的电子商城项目
- 原证 java web慧心人力资源管理系统
- 原证精 Java开源社区论坛系统Symphony
- 原证精 java web学习入门的失物招领系统
- 证精 jsp+servlet开发java web诚欣企业电子商城(源码+数据库脚本)