海運(yùn)集裝箱管理部分之預(yù)配信息導(dǎo)出需求說(shuō)明書(shū)
#船名:航次:提單號(hào):目的港
#尺寸:箱型:數(shù)量:經(jīng)營(yíng)人
TITANIC:603E:SNL??? 018576:SIGAPORE#
20:GP:4:HUB#
40:RF:5:SNL#
多船船多票業(yè)務(wù)文件格式如下:
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#
======================================
提單類(lèi)型的數(shù)據(jù)結(jié)構(gòu):
英文名稱(chēng)??? 中文名稱(chēng)
shipname??? 船名
voyage??? 航次
blno??? 提單號(hào)
destination??? 目的港
cnttype??? 箱型
cntsize??? 集裝箱尺寸
cntqnt??? 箱量
cntoperator??? 箱經(jīng)營(yíng)人
remark??? 備注
======================================
進(jìn)度需求:
1、從指定文件夾中讀取指定文件
2、提單類(lèi)必須從AbstractBL中繼承
3、AbstractBL必須實(shí)現(xiàn)ISequence,IBlHeader兩個(gè)接口
4、ISequence 中包括一個(gè)getSequence方法能夠讀取提單序號(hào),
?? IHeader? 中包括一個(gè)getHeader方法能夠讀取提單頭。
5、從文件中讀取業(yè)務(wù)信息(先實(shí)現(xiàn)單個(gè)文件讀取)
6、將業(yè)務(wù)信息解析成提單對(duì)象
7、將提單對(duì)象放入提單對(duì)象列表
8、將列表數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)(用文件代替兩類(lèi)文件:文本文件,寫(xiě)入Excel )
9、提單類(lèi)中一律使用private屬性,使用公有方法進(jìn)行存取
10、翻譯要從Properties 文件中讀取
11、不得在程序中出現(xiàn)業(yè)務(wù)數(shù)據(jù)或者業(yè)務(wù)文件名稱(chēng)等硬編碼(配置文件可以),把所有需要硬編碼的內(nèi)容寫(xiě)入文件,參照翻譯的做法讀取
如:SNL等信息, 需要被讀取的文件或者文件夾等皆從配置文件中讀取
12、可視化界面讀取文件信息,配置文件的路徑等,從界面獲取
13、要具備存放如下信息的配置文件(config.info):
??? 1).翻譯屬性文件路徑
??? 2).預(yù)配信息文件名稱(chēng),路徑
3).集裝箱尺寸信息文件名稱(chēng),路徑
4).統(tǒng)計(jì)結(jié)果文件名稱(chēng),路徑
5).格式化結(jié)果文件名稱(chēng),路徑
6).SOC 信息
7).服務(wù)器地址,端口
14、層次分明,結(jié)構(gòu)合理,界面清新美觀
15、維護(hù)容易
16、如果某條預(yù)配信息已經(jīng)存在,則不進(jìn)行導(dǎo)入(船名航次,集裝箱箱型,尺寸相同則認(rèn)為是同一條預(yù)配信息,提單號(hào))
1.實(shí)現(xiàn)多個(gè)文件讀取和單個(gè)文件多票業(yè)務(wù)讀取
2.最后分別在兩臺(tái)機(jī)器上實(shí)現(xiàn)Socket 傳遞讀取過(guò)來(lái)的文件內(nèi)容,然后從另一臺(tái)機(jī)器上解析,然后傳回來(lái),并實(shí)現(xiàn)保存
3.解析一個(gè)文件中具有多個(gè)船名航次信息
4.解析多個(gè)文件中具有多個(gè)船名航次信息
5.添加報(bào)文校驗(yàn)功能,檢測(cè)文件的合法性
? 校驗(yàn)內(nèi)容:
? 1). 是不是預(yù)配信息
? 2). 是不是完整的預(yù)配信息
? 3). 是不是正確的集裝箱信息
? 4). 校驗(yàn)預(yù)配信息是否已經(jīng)存在
6.添加集裝箱統(tǒng)計(jì)功能(數(shù)據(jù)結(jié)構(gòu)仍然以存放提單對(duì)象的內(nèi)存數(shù)據(jù)庫(kù)為基礎(chǔ)模型)
? 統(tǒng)計(jì)如下功能:
? 1). 總共有多少個(gè)航次
? 3). 總共有多少票業(yè)務(wù)(按提單號(hào)統(tǒng)計(jì))
? 6). 所有業(yè)務(wù)的箱型尺寸匯總
? 7). 所有業(yè)務(wù)中有多少個(gè)箱子
? 8). 計(jì)算總共有多少個(gè)TEU
? 9). 按照箱經(jīng)營(yíng)人進(jìn)行集裝箱信息匯總
7.將統(tǒng)計(jì)結(jié)果存入文件,同時(shí)顯示在界面上
8. Socket 數(shù)據(jù)傳遞,要在局域網(wǎng)中的不同計(jì)算機(jī)之間測(cè)試通過(guò)
最后一天工作任務(wù):
從xml 解析
導(dǎo)出到Excel 表格中
附加功能:從FTP服務(wù)器上讀取信息
=======================================
如果提單頭(用getHeader 方法獲取)是SNL,HUB 要在記錄的最后(備注)加上SOC
將箱經(jīng)營(yíng)人翻譯成對(duì)應(yīng)的英文全稱(chēng)寫(xiě)入文件,并同時(shí)顯示在界面上
?
程序分了5個(gè)類(lèi)來(lái)實(shí)現(xiàn),分別寫(xiě)成5個(gè)文章便于瀏覽,我沒(méi)有使用屬性文件,此處用了Operator類(lèi)實(shí)現(xiàn)。