APP下载

基于B/S模式的税务局发票管理系统的设计与实现

2016-10-14韩晓东

价值工程 2016年5期
关键词:S模式

韩晓东

摘要: 发票是记录经济活动内容的载体,是国家监督经济活动,维护经济秩序保护国家财产安全的重要手段。在过去的发票管理活动中,很多单位都是以半手工方式管理发票。针对税务机关业务进行具体分析,设计并实现了一种基于B/S模式的税务局发票管理系统,可以满足纳税人在网上进行开具发票申请,税务部门系统办公开具发票、管理发票。在保证发票中信息准确的同时,也能够大幅减少工作人员的工作量,提高了工作效率。本系统是基于SSH框架结合Oracle数据库进行开发,确保了系统的稳定和高效。

Abstract: The invoice, as a record carrier of economic activities, is an important means for the state to monitor economic activities and maintain the economic order as well as protect the national property security. In past invoice management activities, a large number of units managed their invoice in a semi-manual way. It is directed against the business of the tax authorities to make specific analysis then designed and implemented a kind of Bill Management System in Tax Bureau based on B/S model. Such a system could meet the taxpayers' online application for invoicing and allow the tax department to issue and manage invoice on the Internet. It could not only ensure the accuracy of the invoice, but also substantially reduce the workload of the staff which greatly increases the efficiency of operations. Besides, the system is developed combined with Oracle database based on SSH framework which could guarantee the stability and high-efficiency of the system.

关键词: 发票管理;B/S模式;SSH框架

Key words: invoice management;B/S Model;SSH framework

中图分类号:TP311.5 文献标识码:A 文章编号:1006-4311(2016)05-0087-04

0 引言

发票在我国社会经济活动中具有极其重要的意义和作用。过去,很多单位和机构都是以半手工的方式管理发票。而现在,已经有很多单位和机构从传统方式转变为基于C/S模式的信息化管理方式,这种工作方式的转变在一定程度上提高了发票管理的效率,减少了不必要的人力资源,降低了发票管理的费用。

但C/S(客户端/服务器)模式需要针对不同的操作系统平台开发不同的客户端,客户端需要安装在每台计算机上,安装工作量较大,而且客户端开发成本较高,对于不同的操作系统客户端的兼容性不够理想,导致其维护和升级成本也非常高[1]。

而且隨着商业规模的不断扩大,发票的数量急剧增加,以往开具过的发票信息更是难以找回。面对庞大的发票数量和信息量,急需要高效、科学的发票管理系统进行管理[2]。本文设计实现的基于B/S(浏览器/服务器)模式的发票管理系统,可以有效改善上述问题。本系统采用B/S模式,无需要安装客户端,只需要浏览器在联网环境下输入有效的网址即可方便使用。本系统具有开具发票和管理发票等功能,大大减少了发票管理人员的工作量,降低了发票管理的成本,提高了诸多单位和机构的工作效率。

1 系统结构

本文介绍的基于B/S模式的税务局发票管理系统可以为税务管理部门、下辖单位和发票代开点提供一个基于Web的发票管理平台。该系统既可以作为具有发票开具职能的部门的在线平台,还可以作为纳税人在线申请发票的有效途径。

该系统根据职能权限分为三部分:税务局、下辖机构和代开点。

税务局作为最高权限的职能部门包括七个模块:审核发票冲正或作废的申请,管理下辖机构,开具发票,生成发票,派发发票,管理代开点,发布通知公告。税务局可以生成指定号码区间的发票并将其派发到代开点,税务局还可以开具发票,查看代开点和自己开具的发票。具体功能模块如图1所示。

代开点作为税务局的下属部门只具有查看的功能:查看已开具的发票信息,查看代开点信息,查看通知公告,查看代开点负责人。该职能部门本身不具备开具发票的功能,功能模块如图2所示。

打开点包含四个功能模块:管理纳税人,开具发票,打印发票,查看通知公告。代开点只负责管理本辖区的纳税人,可以添加删除纳税人信息,如图3所示。

2 系统主要功能设计

为了实现税务局生成、派发、开具发票等功能,需要为税务局不同的职能部门分配对应的账号和密码。系统根据登录人员的账号权限显示不同的功能,只有最高权限的用户才能生成指定编码范围的发票。发票生成后,其他部门的用户可以将指定的发票派发到指定的代开点,方便代开点的工作人员开具发票。税务局的相关部门也可以开具发票。

代开点的工作人员或者税务局开具发票的工作人员在意识到错误的使用发票后可以申请发票的冲正或者作废,税务局在接收到发票冲正或者作废的申请提示后可以对发票进行相应的管理操作。

在开具发票业务中,以代开点开具发票业务最为复杂。发票中包含了纳税人申请发票的详细的关键信息:发票开具时间、发票号码、发票代码、发票编码、行业分类、税控码、收款方证件号、申请表号码、总金额、税额、完税凭证号码、收款方信息、开票人姓名、税额大写、总结额大写、使用详细信息、付款方名称;还包括纳税人的信息,包括纳税人编号、姓名、企业名称、身份证号、联系方式、企业地址等。

为了给纳税人提供快捷方便的开具发票流程,纳税人可以提前在系统中预约开具发票申请;代开点的工作人员需要将本辖区的纳税单位录入系统中。开具发票的流程需要经历以下6个过程:

①录入:代开点将纳税人添加到纳税人管理库中。

②预约:填写预约申请,何时到代开点开具指定的发票。

③审核:代开点核实预约申请。

④批准:代开点审核通过后,执行同意或者驳回预约的申请。

⑤开具:纳税人查看审核结果,若通过审核纳税人在指定时间到代开点办理发票;纳税人也可选择直接到代开点现场办理。

⑥冲正或者作废:如若发票办理过程中出现差错或者纳税人要改正发票的纳税类型,代开点可以将错误发票提交到税务局进行发票的冲正或者作废。

具体流程图,如图4所示。

纳税人可以自行创建纳税申请,只需要通过代开点的审批合格后,便可以开始正常的发票开具流程。

一项申请创建完成后,便处于未完成状态,在该阶段,代开点和纳税人可以在系统中未完成申请模块中查看相应的发票申请,不同的是纳税人只具有查看申请批复状态的功能,而代开点还具有通过和驳回的批复功能。当代开点审核未通过,纳税人需要重新申请或者选择现场办理;审核通过后便进入了正常办理流程。对于开具有误的发票,代开点可以向税务局提交发票冲正或者作废的申请,如果冲正成功,发票继续作为可开具的有效发票;如果作废则不能继续使用。

对某个固定的企业,需要开具的发票数量、种类、周期是相对固定的,每年代开点或者申请开具发票的企业员工有很大部分是重复工作。在已完成开具发票模块中设计的复制开具发票功能,可以通过历史或者上次开具发票形成的企业信息、发票内容信息等,快速生产新的发票,减轻了代开点工作人员的工作量,提高了效率。

3 使用技术及功能实现

本系统使用J2EE企业级开发平台中较为流行和被广泛认可的开源框架SSH(Struts, Spring, Hibernate)作为系统的框架。Struts MVC主要担任控制器的角色,负责流程的控制,Spring框架为事务管理提供支持,Spring有效的降低了各个组件之间的耦合度,Hibernate进行数据库的操作封装。SSH框架为整个系统提供了统一的开发平台,有效的减轻了开发人员重新建立解决复杂问题解决方案的负担和精力,同时对于业务逻辑和持久性逻辑提供了支持,很好的解决了组件之间的耦合度[3]。

系统前端页面使用了较为流行的JSP技术,结合轻量级JS库JQuery。JQuery有着方便的API文档,可以实现丰富的动画效果,并且方便的为网站提供Ajax交互,在浏览器兼容性方面提供了较好的支持,方便开发者在不同浏览器下进行开发。其Ajax Web功能比传统的web程序具有更好的交互性,更快的响应速度[4]。JSP技术作为本系统的View层,可以实现跨平台的开发和运行,做到了一次编写到处运行,JSP技术拥有自定义标签具备Java语言独特的语言基础,为Java程序员提供了方便。

用户在页面上的操作通过http请求經过后台SSH框架进行处理,调用Java业务逻辑方法,完成相应的功能。数据库使用了具备高稳定性的Oracle关系型数据库,其在数据管理方面有独特的优势它可以持久性的保存大量的数据,并且具有高可靠性和数据共享性,保证了系统的安全、快速和有效性[5]。

3.1 前端表现层实现

税务局的下辖机构涉及到大量的查看功能等,牵扯到复杂的动画和异步请求功能,JQuery可以轻松的实现丰富的动画效果,可以写更少的代码实现更复杂的功能,另外,它还提供了强大的异步技术,为解决多个数据表的联动查询、更新显示和分页显示等复杂页面提供了快捷的途径。使用JQuery框架的前提是引入其包含的JS文件,需要在公共JSP页面添加如下代码:

在JQuery中,能够操作各种标签元素,如

等,也可以为标签元素绑定指定的事件。例如在纳税人提交开具发票申请中,当点击提交按钮时,这时期望弹出一个包含确认提交的对话框,可以用如下代码实现相应功能:

$(“#button”).click(function(){

if(confirm(“确定信息无误并提交?”)){

$(“#form”).submit(function(){

/*需要提交的url等属性*/

});

}

});

在查看数据或者删除数据时,经常会需要和后台进行动态的数据交互,JQuery提供了一种比原生Javascript中的XMLHttpRequest对象更为方便易用的Ajax对象,它提供了灵活方便的配置参数供开发者使用,如果只需要处理一些简单的逻辑,可选用JQuery提供的$.post或者$.get方法,如果处理复杂的逻辑,可选用$.ajax方法。以下是根据纳税人编号异步查看已经开具发票信息的例子:

$.ajax({

url:”/taxpayerlist/checklist”,

data:{ invoiceID:370118201512180001},

cache:false,

type:”get”,

dataType:”json”,

success:function(data){

/*查询成功需要做的操作*/

},

error:function(){

/*查询异常需要做的操作*/

}

});

$.ajax还有诸多的可选参数,根据业务需要本方法只配置以上内容。

由于本系统不只是在局域网内部使用,还需要面上社会上众多群体,在这时,系统的兼容性必须要考虑。尽管JQuery在兼容性方面做了优化,但仍不能保证在一些低版本浏览器上可以正常运行。为此,在开发系统过程中,首先判断浏览器的类型,然后选择浏览器支持的函数进行代码实现。在用户方面,为其推荐并安装符合通用解析标准的浏览器,确保用户得到完整的系统功能体验。

3.2 后端业务逻辑层实现

SSH框架使得产品耦合性降低,更多的应用面向对象的思想,提高了系统开发效率和系统的稳定性。本系统采用了B/S模式广泛使用的三层架构(MVC),即业务逻辑层、表现层和数据层。

Struts在MVC设计模式中主要担任控制器的角色,Struts的控制器主要包括过滤器、拦截器以及Action三个层次。拦截器接收到拦截请求,会自动的封装前台发送来的参数,并根据配置文件找到指定的Action将参数封装在Action中,然后执行配置文件中跳转的页面并携带返回值返回结果,跳转到特定的页面显示响应结果。

Hibernate框架是一个优秀的对象关系映射数据持久化层框架,可以将对象自动持久化到关系数据库中,通过映射文件*.hbm.xml保存映射信息,用这种方式只要少量代码就可以完成持久化工作[6]。利用Hibernate的ORM技术,可以将关系数据库中表的数据映射成为对象,保证符合面向对象的风格。

Spring框架使用的都是简单的JavaBean,很容易与其它框架进行整合,与Struts框架整合,使用控制反转装配Struts的Action对象,使得应用的扩展性进一步的提高。Spring提供了回调方法和模板类对数据库连接操作和Hibernate框架进行整合[7]。这些特点有效地提高了开发的效率。

以保存开具发票功能实现为例,说明在SSH框架下,此功能是怎么样从用户请求道完成保存的。代开点工作人员填写好发票信息后,点击“开具发票”按钮进行保存,将会触发后端代码,Struts配置文件中进行拦截并转发到相应的Action对象,在这里Struts中的Action交予Spring管理,在Struts中配置如下:

<!—将Action交由Spring管理-->

Struts会链接到Spring的配置文件中查找class对应的bean,并通过控制反转实例化对其进行依赖注入。在Srping的application_action.xml中配置如下:

class=”com.liip.taxmanage.saveTaxpayerAction” scoper=”prototype”>

实例化后对象会根据用户请求中的参数查找相应的业务处理函数,经过业务处理后返回结果。逻辑处理的部分代码如下所示:

public String taxpayerService(){

//发票重要字段

private String skid;

private String fpje;

//返回处理的结果

private String message;

//逻辑处理

message = taxpayerServiceImp();

}

业务逻辑中调用的taxpayerService方法是通过Spring的依赖注入实现的,代码中的taxpayerServiceImp方法依赖于持久层的Hibernate框架,而针对Hibernate中ORM的事务处理,需要在Spring中配置,如下所示:

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

为了对不同部门间的权限进行区分已经功能的限制,在数据表中增加了字段来表征不同部门的代码编号,在工作人员登录后,业务逻辑代码会将当前工作人员所在部门的编号以及登录人员的工号记录到Session中,并返回到前端页面。比如,税务局下辖机构进行开具发票的操作,后端代码会随时进行权限监控,一旦发现请求权限不够,将停止执行操作并返回前端进行警告越权操作。

4 总结

本文提出一种基于B/S模式的税务局发票管理系统。相对于传统的C/S模式,B/S模式在维护成本以及开发效率上有明显的优势,可以提高税务局以及代开点等工作人员的工作效率,降低人力物力成本。该系统在SSH框架和JQuery框架下进行开发,保证了后端代码的健壮性、前端页面的高效和人性化。数据库采用稳定性高性能优的Oracle关系型数据库,充分保证了数据的安全性和有效性。在系统开发过程中,对权限以及其它部分进行了控制和优化,提高了访问系统的速度和良好的用户体验。但是,本系统仍然存在部分的不足,需要進一步深入的研究和优化,如系统安全性需要进一步的防范。

本系统在地方税务局试运行30天,有1154名纳税人进行系统预约,成功预约1150人,成功率达到99.65%。代开点由原来排队开具发票转变为零排队,大大提高了开具发票的效率,减轻了工作人员的压力,节约了纳税人的宝贵时间。

参考文献:

[1]侯淑英.B/S模式和C/S模式优势比较[J].沈阳教育学院学报,2007(02):98-100.

[2]缪贤浩.基于.NET的税务部门发票管理系统的研究[J].黄石理工学院学报,2008(06).

[3]贾艳丽,刘岩.基于SSH框架的考务管理信息系统的研究开发[J].计算机与现代化,2012,2011(10):126-128.

[4]谌湘倩,狄文辉,孙冬.基于SSH框架与AJAX技术的JavaWeb应用开发[J].计算机工程与设计,2009,30(10):2590-2592.

[5]袁玲玲.Oracle数据库在企业信息化建设中的应用[J].硅谷,2013(21):121.

[6]宋汉增,沈琳.利用Hibernate对象持久化服务简化Java数据库访问[J].计算机应用,2004,23(12):135-137.

[7]张建军,刘虎,倪芳英.基于SSH与Highcharts整合架构的Web应用研究[J].计算机技术与发展,2013(9):245-247.

猜你喜欢

S模式
学生考勤系统开发
基于Web的毕业设计管理系统设计与实现
明日博客系统的设计与实现
集团公司OA系统的研究与开发
基于B/S模式的数据结构实验平台设计
航空发动机管理信息系统研究
基于USB存储设备的透明监控系统