張雪松(中國石油大學(xué)(華東)圖書館,山東青島266580)
?
基于匯文系統(tǒng)的驗(yàn)收核對管理軟件設(shè)計(jì)與實(shí)現(xiàn)
張雪松
(中國石油大學(xué)(華東)圖書館,山東青島266580)
[摘要]圖書驗(yàn)收核對是圖書館圖書驗(yàn)收的收尾工作。通過分析驗(yàn)收核對的實(shí)際功能需求,制定驗(yàn)收核對管理軟件總體設(shè)計(jì)方案。軟件以Java為開發(fā)語言,在Netbeans環(huán)境下可視化開發(fā),實(shí)現(xiàn)清單管理、驗(yàn)收核對、驗(yàn)收配送信息檢索等功能,從而提高驗(yàn)收核對工作效率和質(zhì)量。
[關(guān)鍵詞]圖書驗(yàn)收圖書館自動(dòng)化Java
[分類號]G253.4
圖書驗(yàn)收核對是指圖書館完成館配商配送圖書驗(yàn)收時(shí),對驗(yàn)收批次實(shí)際驗(yàn)收的種數(shù)、冊數(shù)、總碼洋與書商提供的送書清單進(jìn)行的對比核對過程。圖書驗(yàn)收核對最終生成圖書驗(yàn)收批次核對結(jié)果,具體包括驗(yàn)收的總冊數(shù)、總碼洋、未驗(yàn)收圖書明細(xì)、復(fù)本數(shù)目不符明細(xì)以及圖書價(jià)格不符明細(xì)等具體情況說明,結(jié)果應(yīng)用于對書商到書情況說明以及書款結(jié)算。
圖書驗(yàn)收核對是一項(xiàng)費(fèi)時(shí)費(fèi)力的記錄核對工作,原因在于圖書配貨、物流配送、拆包驗(yàn)收、財(cái)產(chǎn)登賬等環(huán)節(jié)對驗(yàn)收結(jié)果產(chǎn)生影響。大批的圖書有時(shí)達(dá)到數(shù)千冊,驗(yàn)收周期可長達(dá)幾個(gè)星期;書商配貨準(zhǔn)確性、物流配送損失、驗(yàn)收人員操作錯(cuò)誤都可能導(dǎo)致驗(yàn)收結(jié)果異常。匯文系統(tǒng)提供驗(yàn)收批次訂購復(fù)核和驗(yàn)收清點(diǎn)功能用于圖書驗(yàn)收核對。但驗(yàn)收批次訂購復(fù)核只能用于實(shí)際到書與征訂記錄的對比,而驗(yàn)收清點(diǎn)功能一般用于批量驗(yàn)收時(shí)查找缺失品種。因此,匯文系統(tǒng)沒有提供完整的圖書驗(yàn)收核對功能。工作人員只能從匯文中導(dǎo)出個(gè)別登錄賬清單,憑借人工核對,浪費(fèi)大量人力和時(shí)間。楊昌盛[1]開發(fā)了一種單機(jī)驗(yàn)收對賬軟件輔助軟件,支持驗(yàn)收核對功能,但沒有聯(lián)機(jī)檢索驗(yàn)收記錄功能,同時(shí)不具備清單管理、圖書配送信息檢索等功能。為提高驗(yàn)收核對效率和質(zhì)量,筆者設(shè)計(jì)開發(fā)了基于匯文系統(tǒng)的驗(yàn)收核對管理軟件,經(jīng)中國石油大學(xué)(華東)圖書館的實(shí)際工作應(yīng)用取得了良好的效果。
圖書驗(yàn)收核對首先需要處理書商配送清單,錄入各批次每種圖書的包號、ISBN、題名、價(jià)格、套數(shù)、每套冊數(shù)、總冊數(shù)、總碼洋等數(shù)據(jù)項(xiàng),然后計(jì)算批次總碼洋和批次總冊數(shù);同時(shí)軟件從匯文系統(tǒng)中抽取對應(yīng)驗(yàn)收批次詳單,計(jì)算總碼洋和總冊數(shù)。完成以上操作后,將兩者進(jìn)行對比,判斷總碼洋和總冊數(shù)是否相符以及輸出各種異常驗(yàn)收明細(xì)。對于異常驗(yàn)收明細(xì),需要進(jìn)一步人工復(fù)核。軟件開發(fā)使用流程如圖1所示。
圖1 驗(yàn)收核對軟件使用流程
軟件開發(fā)具體需要滿足如下幾個(gè)方面的功能需求:
①支持圖書配送清單管理,支持Excel格式圖書配送清單的導(dǎo)入、導(dǎo)出、刪除,提供數(shù)據(jù)庫管理維護(hù)功能。
②支持匯文系統(tǒng)征訂驗(yàn)收數(shù)據(jù)的檢索和抽取,支持從匯文系統(tǒng)中抽取書商代碼、征訂明細(xì)、驗(yàn)收批次、驗(yàn)收詳單、MARC書目字段等信息。
③支持批次信息核對功能,對于選定的驗(yàn)收配送批次和驗(yàn)收批次進(jìn)行核算,核對總冊數(shù)和總碼洋。支持核對中異常信息的詳細(xì)輸出,如無清單品種驗(yàn)收、有清單無驗(yàn)收、復(fù)本數(shù)目不符等。
④提供圖書信息集成檢索功能。針對驗(yàn)收核對結(jié)果的異常情況,需要人工復(fù)核。軟件應(yīng)支持通過ISBN、題名、征訂記錄號等數(shù)據(jù)項(xiàng)對圖書征訂信息、圖書配送信息以及驗(yàn)收信息進(jìn)行集成檢索。
3.1軟件概要設(shè)計(jì)
軟件提供圖形化用戶界面,由清單管理、賬目核對、清單檢索、設(shè)置4個(gè)子界面組成,分別完成清單管理功能、賬目核對功能、集合檢索功能、數(shù)據(jù)庫連接設(shè)置功能。軟件采用模塊化設(shè)計(jì),模塊內(nèi)部采用面向?qū)ο蟮膶?shí)現(xiàn)方法。按照軟件實(shí)際需求,可以將軟件分為6個(gè)功能模塊:Excel讀取/寫入模塊、配送清單管理模塊、ISBN處理模塊、驗(yàn)收核對模塊、信息集成檢索模塊、數(shù)據(jù)庫管理模塊。模塊功能以及調(diào)用關(guān)系如圖2所示。
圖2 驗(yàn)收核對管理軟件模塊功能
3.2軟件詳細(xì)設(shè)計(jì)
①Excel讀取/寫入模塊:圖書配送清單文件以及驗(yàn)收核對結(jié)果輸出文件一般以Excel97-2003格式存儲,數(shù)據(jù)讀取和寫入以行為單位。為此,Excel讀取/寫入模塊封裝了Excel文件處理庫,提供以Excel列名為關(guān)鍵字的映像數(shù)據(jù)為單位的高級讀寫功能。
②ISBN處理模塊:ISBN存在10位數(shù)字、10位帶連字符、13位數(shù)字、13位帶連字符數(shù)字等多種格式。為了便于驗(yàn)證ISBN的唯一性以及提供統(tǒng)一ISBN的檢索功能,軟件需要對讀取的ISBN進(jìn)行轉(zhuǎn)換和校驗(yàn)。ISBN處理模塊提供各種格式ISBN數(shù)據(jù)轉(zhuǎn)換為10或13位無連字符格式功能。此外,ISBN處理模塊提供ISBN格式校驗(yàn)功能以及10或13位格式校驗(yàn)碼計(jì)算功能。
③數(shù)據(jù)庫管理模塊:考慮圖書館系統(tǒng)數(shù)據(jù)安全以及清單數(shù)據(jù)庫數(shù)據(jù)量,軟件沒有使用匯文Oracle數(shù)據(jù)庫存儲本地?cái)?shù)據(jù)。本地配送批次以及詳單數(shù)據(jù)使用Access存儲。為方便數(shù)據(jù)檢索,數(shù)據(jù)庫管理模塊分別對匯文數(shù)據(jù)庫以及Access數(shù)據(jù)庫連接進(jìn)行封裝。
④配送清單管理模塊:配送清單數(shù)據(jù)要求以Excel97-2003格式存儲,必須具有包號、ISBN、題名、套數(shù)、卷數(shù)、冊數(shù)、套價(jià)、總碼洋、征訂記錄號9個(gè)字段。在導(dǎo)入清單時(shí),用戶首先填寫批號、說明、清單文件地址等信息。軟件自動(dòng)檢測批號是否重復(fù),Excel文件是否有效,自動(dòng)生成導(dǎo)入日期,建立批次信息,然后通過Excel讀取模塊逐行讀取轉(zhuǎn)化為以行為單位的散列數(shù)據(jù),該散列數(shù)據(jù)以Excel列名為關(guān)鍵字。在導(dǎo)入本地?cái)?shù)據(jù)庫之前,通過ISBN處理模塊對ISBN校驗(yàn)和轉(zhuǎn)換,遇到錯(cuò)誤的ISBN號碼會(huì)提示用戶是否修正。所有ISBN號碼一律轉(zhuǎn)換為以978開頭的13位無連字符格式。
⑤驗(yàn)收核對模塊:用戶打開驗(yàn)收核對界面選擇館配商,軟件顯示驗(yàn)收批次列表和配送清單列表。用戶選擇一個(gè)或多個(gè)驗(yàn)收批次和與之對應(yīng)的一個(gè)或多個(gè)清單批次,并選擇核對結(jié)果保存文件,然后點(diǎn)擊核對按鈕開始核對。軟件首先逐批次從匯文系統(tǒng)中抽取驗(yàn)收數(shù)據(jù)明細(xì),然后針對ISBN重復(fù)的情況分別處理生成核對準(zhǔn)備數(shù)據(jù),計(jì)算總冊數(shù)以及總碼洋是否相符。如不相符,模塊自動(dòng)進(jìn)行詳細(xì)對比;如果結(jié)果相符,軟件提示用戶總冊數(shù)與總碼洋相符,是否進(jìn)行詳細(xì)核對。如果用戶選擇繼續(xù),模塊繼續(xù)詳細(xì)對比,否則終止運(yùn)行。詳細(xì)對比將以ISBN為圖書品種判斷依據(jù),將圖書驗(yàn)收異常情況分為5種:有清單無驗(yàn)收品種、無清單有驗(yàn)收品種、驗(yàn)收冊數(shù)多于清單冊數(shù)、驗(yàn)收冊數(shù)少于清單冊數(shù)、冊數(shù)相等總碼洋不相符品種。驗(yàn)收流程如圖3所示。
圖3 驗(yàn)收核對模塊流程
4.1開發(fā)環(huán)境和系統(tǒng)要求
軟件使用Java語言開發(fā),JDK版本為1.7,編程工具是Netbeans7.3,操作系統(tǒng)為Windows7。可以在任何應(yīng)用環(huán)境兼容Java虛擬機(jī)1.6以上版本的Windows系統(tǒng)中運(yùn)行,數(shù)據(jù)庫使用Access2007。采用第三方開源Apache POI庫[2]讀寫Ex?cel文件。軟件對于PC硬件配置要求低,符合絕大多數(shù)圖書館驗(yàn)收人員工作環(huán)境。
4.2匯文征訂驗(yàn)收數(shù)據(jù)抽取
驗(yàn)收核對需要獲取圖書驗(yàn)收批次明細(xì),必須了解相關(guān)數(shù)據(jù)表結(jié)構(gòu)。匯文5.0使用了超過300個(gè)表,而且沒有官方的表結(jié)構(gòu)和相關(guān)關(guān)系說明。經(jīng)過筆者查閱相關(guān)資料[3]和實(shí)際摸索,相關(guān)的匯文數(shù)據(jù)表包括:PUBLISH_BUSI、ORDER_RECORD、CHECK_ACCT、ORDER_CHECK、INDI_ACCT、MARC。其中PUBLISH_BUSI表用于存儲館配商信息;ORDER_RECORD表用于存儲征訂記錄明細(xì);CHECK_ACCT表用于存儲驗(yàn)收批次信息;ORDER_CHECK表用于存儲征訂驗(yàn)收明細(xì);MARC表用于存儲MARC數(shù)據(jù)相關(guān)信息。
4.3圖書品種匹配判斷標(biāo)準(zhǔn)選擇
圖書驗(yàn)收核對需要判斷驗(yàn)收清單與配送清單的圖書是否為同一種圖書,可選擇的判斷依據(jù)主要有征訂記錄號和國際標(biāo)準(zhǔn)書號ISBN。征訂記錄號的優(yōu)勢在于唯一性。一種征訂記錄號對應(yīng)一種或一套文獻(xiàn)的征訂。即使同種圖書在同一書商的多次訂購在匯文系統(tǒng)中也可以做到使用不同的征訂記錄號。征訂記錄號的缺點(diǎn)在于征訂記錄號必須貫穿圖書采訪和驗(yàn)收,才能作為品種判斷的標(biāo)準(zhǔn)。如果驗(yàn)收征訂記錄號與采訪征訂記錄號不符或書商配送清單無法提供征訂記錄號,那么就無法使用征訂記錄號作為判斷依據(jù)。驗(yàn)收時(shí)有很多圖書因?yàn)楦鞣N原因需要使用匯文的無訂購驗(yàn)收功能,如分散著錄的多卷書、無訂購驗(yàn)收等。一些技術(shù)實(shí)力弱的書商往往無法在配送清單中提供征訂記錄號。而ISBN的優(yōu)點(diǎn)在于通用性。普通圖書都具有ISBN號碼,沒有ISBN的其他類型文獻(xiàn)如曲譜、地圖等在訂購驗(yàn)收中占的規(guī)模很小。書商提供配送清單都含有ISBN號。ISBN的缺點(diǎn)在于多次驗(yàn)收同一種圖書ISBN號碼是相同的,使用相同的ISBN的多卷書如分散著錄,必然導(dǎo)致驗(yàn)收批次中ISBN重復(fù)。此外ISBN的格式多樣,既包括有連字符格式,也包括無連字符格式;既有10位格式,也有新的13位格式。
綜上,結(jié)合處理難易程度以及驗(yàn)收實(shí)際情況綜合考慮,軟件使用ISBN號碼作為同一品種判斷依據(jù)。ISBN的多種形式、非ISBN以及無ISBN等情況要求必須先對ISBN進(jìn)行處理,轉(zhuǎn)為統(tǒng)一格式。關(guān)于ISBN格式校驗(yàn)轉(zhuǎn)換以及校驗(yàn)位計(jì)算方法已有論述[4-5],筆者不再贅述。
4.4驗(yàn)收核對方法
驗(yàn)收核對是對驗(yàn)收與配送雙向比較不同。在核對之前需要首先獲取驗(yàn)收明細(xì)。具體做法是首先獲取用戶選擇的驗(yàn)收批次列表,然后根據(jù)列表逐批次從匯文系統(tǒng)中抽取驗(yàn)收明細(xì)。具體語句為:
SELECTORDER_CHECK.ASORD_NO,ORDER_CHECK. CHK_SET_QTY,
ORDER_CHECK.MARC_REC_NO,ORDER_CHECK. CHK_VOL_QTY,
ORDER_CHECK.PRICE,MARC.M_ISBN,MARC.M_TI?TLE
FROM LIBSYS.ORDER_CHECK,LIBSYS.MARC
WHERE CHK_BATCH_NO =“驗(yàn)收批次號”
AND ORDER_CHECK.MARC_REC_NO = MARC. MARC_REC_NO;
驗(yàn)收明細(xì)中普遍具有多條ISBN號相同的記錄,其中既有單一品種的多次驗(yàn)收,也有單ISBN號多卷書的多次驗(yàn)收,同時(shí)還有同批同一品種拆分驗(yàn)收的情況;驗(yàn)收與配送的同一ISBN號圖書記錄數(shù)目是不對等的,如多卷書在配送清單中多以一條記錄列出,而驗(yàn)收中可能分散為多條驗(yàn)收記錄。因此完成所有批次抽取后,對驗(yàn)收明細(xì)和配送明細(xì)以處理后的ISBN號為關(guān)鍵字,對冊數(shù)和碼洋兩個(gè)字段進(jìn)行匯總計(jì)算。具體語句為:
配送清單處理:
INSERT INTO DELIV_LIST_DEAL(ISBN_DEAL,VOL_Q TY_SUM,TOTLE_PRICE)
SELECTISBN_DEAL,SUM(SUM_VOL)ASVOL_QTY_SUM,SUM(round(TOTLE_PRICE,2))AS SUM_PRICE FROM DELIV_LIST //配送清單明細(xì)表WHERE PUBL_CODE =“書商代碼”AND DELIV_BAT CH_NO =…
GROUP BY ISBN_DEAL;
驗(yàn)收清單處理:
INSERT INTO CHECK_LIST_DEAL(ISBN_DEAL,VOL_ QTY_SUM,TOTLE_PRICE)
SELECT ISBN_DEAL,SUM(CHK_SET_QTY*CHK_VOL_ QTY)AS VOL_QTY_SUM,
SUM(round(TOTLE_PRICE,2))AS SUM_PRICE
FROM CHECK_LIST //抽取的驗(yàn)收清單明細(xì)表
WHERE PUBL_CODE =“書商代碼”AND CHK_BATCH_ NO =…
GROUP BY ISBN_DEAL;
完成以上操作后,可以對上一節(jié)列出的異常情況分別對比檢索,然后輸出檢索結(jié)果。
軟件首次使用時(shí),需設(shè)置匯文數(shù)據(jù)庫連接信息。圖書館要求館配商配送圖書時(shí)同時(shí)發(fā)送與紙質(zhì)配送清單一致的電子配送清單。收到配送清單后,按數(shù)據(jù)要求格式轉(zhuǎn)換為具有要求數(shù)據(jù)列的Excel文件導(dǎo)入清單。驗(yàn)收核對時(shí),打開軟件賬目對比功能界面,首先選擇書商,軟件讀取驗(yàn)收批次以及書上清單批次。用戶選擇一個(gè)或多個(gè)驗(yàn)收批次以及與之相對應(yīng)的清單批次,并選擇核對結(jié)果文件保存文件,點(diǎn)擊核對按鈕,軟件開始驗(yàn)收核對。如果總碼洋與總冊數(shù)相符,軟件會(huì)提示是否進(jìn)行詳細(xì)對比;如果不符合,軟件自動(dòng)進(jìn)行詳細(xì)對比,如圖4所示。所有過程信息在界面下方文本域中輸出,核對結(jié)果保存在目標(biāo)文件中。
圖4 賬目對比功能的使用效果
對比結(jié)束后,用戶打開目標(biāo)文件,對異常情況進(jìn)行人工復(fù)核。所有異常情況集成在同一文件中,以異常類別分類顯示,如圖5所示。用戶可以通過清單查找界面對征訂、驗(yàn)收、配送情況人工復(fù)核。
圖5 驗(yàn)收核對結(jié)果示例
筆者開發(fā)的驗(yàn)收核對管理軟件經(jīng)過實(shí)際驗(yàn)收核對測試,已經(jīng)正式應(yīng)用于中國石油大學(xué)(華東)圖書館實(shí)際驗(yàn)收工作中。該軟件大大減少了驗(yàn)收人員的重復(fù)性對比核查工作,避免了人工核查可能造成的失誤,縮短了驗(yàn)收核對的工作時(shí)間,從而提高了工作效率和準(zhǔn)確性。軟件還存在一些可以改進(jìn)的地方,例如完善對配送清單批次的管理,增加驗(yàn)收核對標(biāo)記,增加對應(yīng)驗(yàn)收批次記錄,驗(yàn)收核對時(shí)自動(dòng)匹配驗(yàn)收批次等,這些都是軟件未來修改和擴(kuò)展的方向。
參考文獻(xiàn):
[1]楊昌盛.圖書驗(yàn)收工作的技術(shù)性改進(jìn)嘗試——介紹一種對賬輔助軟件[J].圖書情報(bào)研究,2010(3):61-62.
[2] The Apache Software Foundation. Apache POI Javadocs [EB/OL]. [2013-07-13]. http://poi.apache.org/apidocs/in?dex.html.
[3]朱蘭芳.圖書館匯文系統(tǒng)內(nèi)部表解析及應(yīng)用[J].電子商務(wù),2012(9):70-73.
[4]黎邦群.ISBN-10和ISBN-13批量互換算法及程序[J].現(xiàn)代圖書情報(bào)技術(shù),2008(2):91-93.
[5]李偉.EAN-13圖書條碼與ISBN-13互換、校驗(yàn)與圖書查重[J].農(nóng)業(yè)圖書情報(bào)學(xué)刊,2011(3):61-67.
[6] Horstmann Cay S,Cornell Gary.最新Java 2核心技術(shù):卷Ⅱ[M].北京:機(jī)械工業(yè)出版社,2003:125-130.
張雪松男,1982年生。碩士,館員,采編部副主任。研究方向:信息資源建設(shè)。
·文獻(xiàn)考略·
收稿日期:(2015-07-21;責(zé)編:楊新寬。)