海运集装箱管理部分之预配信息导出需求说明书
#船名:航次:提单号:目的港
#尺寸:箱型:数量:经营人
TITANIC:603E:SNL 018576:SIGAPORE#
20:GP:4:HUB#
40:RF:5:SNL#
多船船多票业务文件格式如下:
YUNFENG:603E:SNL 0185762:SIGAPORE#
20:GP:4:HUB#
40:RF:5:SNL#
YUNFENG:603E:JL 4547357:PUSAN#
20:GP:4:HUB#
40:RT:5:JL#
HANYANG:603E:HUB 8576276:SIGAPORE#
20:RH:4:HUB#
40:RF:5:SNL#
YUNFENG:603E:SNL 4195325:CNSHA#
20:RF:4:HUB#
40:GP:5:JL#
======================================
提单类型的数据结构:
英文名称 中文名称
shipname 船名
voyage 航次
blno 提单号
destination 目的港
cnttype 箱型
cntsize 集装箱尺寸
cntqnt 箱量
cntoperator 箱经营人
remark 备注
======================================
进度需求:
1、从指定文件夹中读取指定文件
2、提单类必须从AbstractBL中继承
3、AbstractBL必须实现ISequence,IBlHeader两个接口
4、ISequence 中包括一个getSequence方法能够读取提单序号,
IHeader 中包括一个getHeader方法能够读取提单头。
5、从文件中读取业务信息(先实现单个文件读取)
6、将业务信息解析成提单对象
7、将提单对象放入提单对象列表
8、将列表数据写入数据库(用文件代替两类文件:文本文件,写入Excel )
9、提单类中一律使用private属性,使用公有方法进行存取
10、翻译要从Properties 文件中读取
11、不得在程序中出现业务数据或者业务文件名称等硬编码(配置文件可以),把所有需要硬编码的内容写入文件,参照翻译的做法读取
如:SNL等信息, 需要被读取的文件或者文件夹等皆从配置文件中读取
12、可视化界面读取文件信息,配置文件的路径等,从界面获取
13、要具备存放如下信息的配置文件(config.info):
1).翻译属性文件路径
2).预配信息文件名称,路径
3).集装箱尺寸信息文件名称,路径
4).统计结果文件名称,路径
5).格式化结果文件名称,路径
6).SOC 信息
7).服务器地址,端口
14、层次分明,结构合理,界面清新美观
15、维护容易
16、如果某条预配信息已经存在,则不进行导入(船名航次,集装箱箱型,尺寸相同则认为是同一条预配信息,提单号)
1.实现多个文件读取和单个文件多票业务读取
2.最后分别在两台机器上实现Socket 传递读取过来的文件内容,然后从另一台机器上解析,然后传回来,并实现保存
3.解析一个文件中具有多个船名航次信息
4.解析多个文件中具有多个船名航次信息
5.添加报文校验功能,检测文件的合法性
校验内容:
1). 是不是预配信息
2). 是不是完整的预配信息
3). 是不是正确的集装箱信息
4). 校验预配信息是否已经存在
6.添加集装箱统计功能(数据结构仍然以存放提单对象的内存数据库为基础模型)
统计如下功能:
1). 总共有多少个航次
3). 总共有多少票业务(按提单号统计)
6). 所有业务的箱型尺寸汇总
7). 所有业务中有多少个箱子
8). 计算总共有多少个TEU
9). 按照箱经营人进行集装箱信息汇总
7.将统计结果存入文件,同时显示在界面上
8. Socket 数据传递,要在局域网中的不同计算机之间测试通过
最后一天工作任务:
从xml 解析
导出到Excel 表格中
附加功能:从FTP服务器上读取信息
=======================================
如果提单头(用getHeader 方法获取)是SNL,HUB 要在记录的最后(备注)加上SOC
将箱经营人翻译成对应的英文全称写入文件,并同时显示在界面上
程序分了5个类来实现,分别写成5个文章便于浏览,我没有使用属性文件,此处用了Operator类实现。