发票布奖资料0525Word格式文档下载.docx

上传人:b****3 文档编号:18296793 上传时间:2022-12-15 格式:DOCX 页数:12 大小:975.62KB
下载 相关 举报
发票布奖资料0525Word格式文档下载.docx_第1页
第1页 / 共12页
发票布奖资料0525Word格式文档下载.docx_第2页
第2页 / 共12页
发票布奖资料0525Word格式文档下载.docx_第3页
第3页 / 共12页
发票布奖资料0525Word格式文档下载.docx_第4页
第4页 / 共12页
发票布奖资料0525Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

发票布奖资料0525Word格式文档下载.docx

《发票布奖资料0525Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《发票布奖资料0525Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

发票布奖资料0525Word格式文档下载.docx

我们采用了:

struts+jdbc+oracle8.17+weblogic8.1的构架方式(mvc模式)。

1.采用了des加密技术,用于用户登录密码的加密。

1、采用了DH非对称加密技术。

主要用于奖项的加密。

2:

跟印刷厂的数据传输采用了数字签名技术。

2、大批量数据的处理。

第三步:

主要的模块:

1:

答大的模块:

不要详细介绍:

系统管理--奖池管理---布奖管理---印制管理----兑奖管理

你们的项目是否很简单?

答:

这个项目是个产品。

项目不大,但是技术含量高,业务逻辑很复杂。

我们的发票布奖可以跨奖池,跨批次,跨段号。

(完毕)

什么是跨奖池跨批次跨段号?

跨奖池:

一种发票可以布奖在多个奖池中。

一个奖池也可以给多种发票布奖。

跨批次:

列如:

该种发票的一个批次布50000万张。

但是这次征管系统下达的印制计划是30000万张,此时还有2000万张不能

印刷。

那么只能在下个批次中接着上一个批次的印刷。

跨段号:

发票每隔10000张。

号码必须跨100位。

如:

印刷50000张:

000001----1000010010----2000020010---30000…….

该项目遇到什么样的困难?

1:

因为数据量比较大,用到了循环并且用到了大对象处理。

List中存放有奖无奖数据对象,内存出现了溢出程序终止运行。

解决方案:

在每一种发票布奖完成后,调用垃圾回收器:

system.gc()清除内存,再循环下一种发票种类。

因为用到了jdbc的预处理prepareStatement对象,在布奖后根据发票印制计划生产发票印制文件时,由于业务逻辑复杂,频繁操作数据库,也出现了weblogic报内存溢出错误,程序终止。

在weblogic中设置jdbc连接池的缓存(StatementCacheSize:

)。

并且调整虚拟机内存的大小。

默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:

java.lang.OutOfMemoryError。

 

DH非对称加密算法:

乙方向甲方发送数据:

数字签名

该系统的运行环境:

数据库:

用oracle9i部署在小型机上:

和税务局的税控系统公用一个数据库,只是用户不同,表空间不同。

2:

开发用tomcat服务器,部署时是在weblogic8.2上面。

因为是大数据量操作。

测试一般用5000---50000条数据

真实运行情况:

一个批次要部署1000—5000万张发票。

3:

该系统是税务局内部使用,不对公网发布。

布奖都要公证处的人在场做公证的。

只有兑奖才对公网开放

4:

去印刷厂的印刷数据是写文件的,采用了非对称加密技术DH加密算法。

用户登陆管理采用了des加密技术。

5:

项目接口科室:

信息中心和征收管理科。

6:

生成的发票文件名称:

奖池id+布奖批次号+发票代码.dat文件中的奖项名称一栏是采用了DH加密算法的。

本系统的功能是负责布奖和产生发票印制文件,发票印制是给印刷厂负责印刷。

印刷厂有接口程序:

根据密钥进行解密

并且自动印刷。

并在奖项一栏填充颜色使用户看不见,必须刮掉上面的一层才能看到中没有中奖。

熟悉以下税务局的组织机构

布奖的奖项表

奖项信息表

奖池信息表:

布奖信息表:

发票种类表:

奖池和发票种类对照表:

(发票种类入池表)

领奖表:

无奖发票信息表

有奖发票信息表:

布奖中生成按钮完成的操作流程:

每种发票布奖的有奖无奖数据放到一个大的数据对象中:

list如:

datavo1-----datavo6

Datavo1

000000000001

餐饮发票

谢谢你的参与

Datavo2

000000000002

二等奖

Datavo3

000000000003

一等奖

Datavo4

000000000004

Datavo5

000000000005

Datavo6

000000000006

列转行写文件的内容如下:

此时的匹数是3

按生成按纽要做的事情:

获取该条数据的开始座位号和结束座位号:

作为循环次数:

生成的发票号码就等于座位号(转12位数字)

根据该批次布奖的奖项从开始座位号和结束座位号中:

产生随机数。

有几个一等奖就产生几个一等奖的随机数

其他奖项依次类推。

将有奖的发票信息和无奖的发票信息分别存放到有浆的list1和无奖的list2.

将有奖和无奖的数据分别插入到有奖和无奖数据表中。

在内存中把有奖和无奖的list存放到一个list中:

list1.addAll(list2)并且打乱顺序.Collections.shuffle(list)

5:

有奖和无奖的list合并后,完成上图中的写文件。

产生随机数的代码:

见工程:

jdbcTestProject中的Tools类

//得到一个处于iMaxPass,iMinPass之间的一个长度为:

length的随机数:

publicstaticStringgetRandom(intiMaxPass,intiMinPass,intlength){

intpwd=(int)(Math.random()*(iMaxPass-iMinPass+1))+iMinPass;

returngetCode(String.valueOf(pwd),length);

}

//凑齐位数

privatestaticStringgetCode(Stringvalue,intLength){

for(inti=value.length();

i<

Length;

i++){

value="

0"

+value;

}

returnvalue;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1