999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于大型超市庫(kù)存管理系統(tǒng)的設(shè)計(jì)方法

2007-01-01 00:00:00戴小波
物流科技 2007年4期

摘要:基于J2EE架構(gòu)在購(gòu)物超市原有的EIS系統(tǒng)上,設(shè)計(jì)實(shí)現(xiàn)了一套靈活的倉(cāng)庫(kù)庫(kù)存管理和自動(dòng)采購(gòu)系統(tǒng),實(shí)現(xiàn)了系統(tǒng)內(nèi)部庫(kù)存報(bào)警、自動(dòng)補(bǔ)貨、向供貨商提供查看庫(kù)存接口等功能,對(duì)購(gòu)物超市業(yè)的發(fā)展將起到較大的推進(jìn)作用。

關(guān)鍵詞:J2EE;倉(cāng)庫(kù)管理;用例分析;消息傳遞;XML文檔

中圖分類號(hào):F717.6文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1002-3100(2007)04-0074-04

Abstract: In this paper, a flexible and J2EE-based warehouse management system for the supermarket is designed and implemented on the basis of already existing EIS realizing the automatic storage checking and reporting, the automatic stocking up, and the visit interface offered to the merchandise provider. It will promote and accelerate supermarket's development.

Key words: J2EE; warehouse management; use case; message transfer; XML Document

近幾年,大型購(gòu)物超市的信息化建設(shè)引起了商家的高度重視。目前購(gòu)物超市應(yīng)用管理系統(tǒng)(即超市的EIS)普遍所采用的是C/S結(jié)構(gòu),其開(kāi)發(fā)重點(diǎn)是收銀功能的實(shí)現(xiàn),包括支持條碼槍、錢(qián)箱、小票打印機(jī)、條碼電子秤、會(huì)員卡消費(fèi)、磁卡等。在EIS建設(shè)中,倉(cāng)庫(kù)管理功能沒(méi)有得到商家的足夠重視,不能實(shí)現(xiàn)貨物自動(dòng)采購(gòu),沒(méi)有系統(tǒng)內(nèi)部庫(kù)存不足的報(bào)警功能。購(gòu)物超市的倉(cāng)庫(kù)管理系統(tǒng)(e-WarehouseMS)在企業(yè)的整個(gè)供應(yīng)鏈中起著非常重要的作用,如果不能保證正確的庫(kù)存和進(jìn)貨控制,將會(huì)導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證。因此,在原有的EIS上設(shè)計(jì)一個(gè)性能優(yōu)良、擴(kuò)展性、靈活性都很好的倉(cāng)庫(kù)管理系統(tǒng)是大型購(gòu)物超市的一種必然。

SUN的J2EE架構(gòu)為基于Web的企業(yè)應(yīng)用提供了優(yōu)秀的技術(shù)支持,基于J2EE平臺(tái)來(lái)開(kāi)發(fā)倉(cāng)庫(kù)管理系統(tǒng)是一種很好的選擇。本文基于J2EE規(guī)范設(shè)計(jì)的e-WarehouseMS系統(tǒng)具有較好的擴(kuò)展性和一定的通用性,對(duì)購(gòu)物超市及倉(cāng)儲(chǔ)企業(yè)的發(fā)展將起到一定的推進(jìn)作用。

1倉(cāng)庫(kù)管理系統(tǒng)需求分析

1.1需求規(guī)格說(shuō)明

(1)基本功能需求:在原有的EIS系統(tǒng)上建立一套靈活庫(kù)存管理和自動(dòng)采購(gòu)的模塊。實(shí)現(xiàn)系統(tǒng)內(nèi)部貨物庫(kù)存報(bào)警、自動(dòng)補(bǔ)貨的功能,向外部用戶(供貨商)提供查看庫(kù)存的接口。

(2)系統(tǒng)的要求:由于采用JAVA技術(shù)構(gòu)建,系統(tǒng)能夠運(yùn)行于通用的技術(shù)環(huán)境中,也能夠運(yùn)行于多種OS平臺(tái)上,具有友好的交互界面,系統(tǒng)易維護(hù),功能易擴(kuò)展。

1.2需求分析

(1)用例(Use Case)分析:采用UML中用例模型[1,2]來(lái)描述角色(Actor)所理解的系統(tǒng)功能。系統(tǒng)設(shè)計(jì)包含3個(gè)用例:供貨商管理、庫(kù)存管理、靈活自動(dòng)采購(gòu)。系統(tǒng)功能范圍的界定即系統(tǒng)邊界包含上述3個(gè)用例。角色用于描述與實(shí)體功能有關(guān)的外部實(shí)體,它可以是用戶,也可以是外部系統(tǒng),如這里的供應(yīng)商系統(tǒng)即是一個(gè)外部實(shí)體。該系統(tǒng)的角色包括由企業(yè)內(nèi)部人員按在系統(tǒng)中扮演的角色分類而成的供應(yīng)商管理人員、庫(kù)存管理人員、采購(gòu)管理人員、訪問(wèn)倉(cāng)庫(kù)系統(tǒng)的外部人員。

(2)用例詳細(xì)描述:①管理人員(不區(qū)分具體的角色)維護(hù)庫(kù)存貨物信息、設(shè)置各種庫(kù)存原料的報(bào)警線,并且維護(hù)供貨商信息、設(shè)置供貨商查看庫(kù)存的權(quán)限;②供貨商按照供貨質(zhì)量分成不同的級(jí)別,不同的供貨商級(jí)別具有不同的庫(kù)存參看權(quán)限,同時(shí)優(yōu)先向級(jí)別高的供貨商生成采購(gòu);③時(shí)間觸發(fā)器定時(shí)檢查庫(kù)存,對(duì)庫(kù)存量小于庫(kù)存報(bào)警線的庫(kù)存品種,生成采購(gòu)單并且按照設(shè)定向庫(kù)存采購(gòu)審批人員發(fā)送E-mail,通知其審批采購(gòu)單,或者直接向供貨商發(fā)送補(bǔ)貨采購(gòu)單。

2J2EE平臺(tái)上e-WarehouseMS系統(tǒng)的設(shè)計(jì)

2.1系統(tǒng)的J2EE結(jié)構(gòu)模式設(shè)計(jì)

系統(tǒng)遵循J2EE架構(gòu)[3,4]設(shè)計(jì)為客戶層、Web層、業(yè)務(wù)邏輯層和EIS層的四層架構(gòu)。客戶層向用戶提供操作界面和顯示信息;Web層負(fù)責(zé)處理客戶請(qǐng)求;業(yè)務(wù)邏輯層由EJB組件實(shí)現(xiàn);EIS層包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng),如數(shù)據(jù)庫(kù)系統(tǒng)、原有的EIS和其他關(guān)聯(lián)企業(yè)的EIS。Web層基于Model 2(即MVC模式),采用一個(gè)免費(fèi)的開(kāi)源的WEB層的應(yīng)用框架Struts實(shí)現(xiàn),servlet處理數(shù)據(jù)存取和導(dǎo)航流,采用JSP處理實(shí)現(xiàn)[5,6]。這種應(yīng)用結(jié)構(gòu)比較容易擴(kuò)展。

2.2商業(yè)對(duì)象及商業(yè)邏輯設(shè)計(jì)

(1)e-WarehouseMS系統(tǒng)涉及的商業(yè)對(duì)象主要有:庫(kù)存(InventoryTb)、購(gòu)貨單(PurchaseTb)、購(gòu)貨單項(xiàng)(PurchaseItem)、供應(yīng)商(SupplierTb)、賬戶(AccountTb)、地址(AddressTb)、貨物(MerchandiseTb)。

(2)需要實(shí)現(xiàn)的商業(yè)邏輯主要有:庫(kù)存的錄入、庫(kù)存狀態(tài)分析、補(bǔ)貨量分析、缺庫(kù)貨物查看、生成及修改采購(gòu)單、生成及修改采購(gòu)單明細(xì)等。

2.3系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)總體構(gòu)件及其相互間的依賴關(guān)系如圖所示,構(gòu)件主要包含用戶界面包、業(yè)務(wù)邏輯包、持久化包和系統(tǒng)工具包。包設(shè)計(jì)的目標(biāo)是盡可能地減小組件或部件間的緊耦合[7]172。

(1)用戶界面包:為用戶訪問(wèn)系統(tǒng)提供界面,它提出操作請(qǐng)求,由業(yè)務(wù)邏輯包執(zhí)行實(shí)際操作。該包中應(yīng)用部件主要為JSP和Servlet,如系統(tǒng)登陸頁(yè)面Login.jsp。

(2)業(yè)務(wù)邏輯包:其主要功能是實(shí)現(xiàn)商業(yè)對(duì)象的業(yè)務(wù)邏輯,其中的對(duì)象是Session Bean,由于無(wú)須保持會(huì)話狀態(tài),所有的Session Bean基本上是Stateless類別。

(3)持久化包:實(shí)現(xiàn)商業(yè)對(duì)象的持久化,其中的對(duì)象主要是Entity Bean,并且這些Entity Bean都是BMP類型,因?yàn)锽MP類型的Entity Bean對(duì)容器更加依賴,不易移植。

(4)系統(tǒng)工具包:包含系統(tǒng)其他包要使用的服務(wù),如與供貨商消息系統(tǒng)交換消息、向?qū)徟藛T發(fā)送E-mail、根據(jù)采購(gòu)單對(duì)象生成相應(yīng)XML文檔及解析XML文檔為采購(gòu)對(duì)象等。

2.4采購(gòu)流程設(shè)計(jì)

e-WarehouseMS系統(tǒng)的一個(gè)重要工作流程是采購(gòu)流程。當(dāng)時(shí)間觸發(fā)器(觸發(fā)時(shí)間間隔由管理員設(shè)定)檢查到貨物的庫(kù)存量達(dá)到庫(kù)存報(bào)警線時(shí),會(huì)觸發(fā)采購(gòu):生成采購(gòu)請(qǐng)求單(可以選擇管理人員或自動(dòng)生成)發(fā)送到供貨商;供貨商對(duì)請(qǐng)求單處理后給出響應(yīng),如果供貨商缺貨,其可向其他供貨商發(fā)出采購(gòu)請(qǐng)求;系統(tǒng)根據(jù)供貨商的響應(yīng)消息對(duì)采購(gòu)請(qǐng)求單進(jìn)行確認(rèn)、修改和審批;最后將審批后的采購(gòu)單發(fā)送給供貨商,進(jìn)入發(fā)貨流程。

3系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵技術(shù)

3.1倉(cāng)庫(kù)庫(kù)存管理

管理人員登陸到庫(kù)存管理界面BrowseInventoryTb.Jsp后,可以通過(guò)多種方式查看庫(kù)存,如可以按庫(kù)存貨物的供應(yīng)商、按低于最小庫(kù)存量、按貨物類別等。比如選擇查看低于最小庫(kù)存量方式,該JSP的請(qǐng)求通過(guò)Action調(diào)用InventoryTbMngEIB(Session Bean)的BrowseLowQuantity方法,該方法然后調(diào)用InventoryTbBMP(Entity Bean)的findLowQuantity(查看庫(kù)存)方法,得到庫(kù)存量低于庫(kù)存報(bào)警線的庫(kù)存貨物,最后將庫(kù)存信息轉(zhuǎn)發(fā)到相應(yīng)JSP頁(yè)面。如果管理人員想采購(gòu)某些貨物可以轉(zhuǎn)到生成采購(gòu)頁(yè)面,生成采購(gòu)單。

3.2生成采購(gòu)

采購(gòu)請(qǐng)求單的生成可以根據(jù)時(shí)間觸發(fā)器觸發(fā)庫(kù)存查看的結(jié)果,由自動(dòng)生成采購(gòu)頁(yè)面autocreatePuchasePage.jsp調(diào)用相應(yīng)對(duì)象實(shí)體的方法自動(dòng)生成,也可以由管理人員(采購(gòu)人員)根據(jù)要采購(gòu)的貨物信息,在createPuchasePage.jsp頁(yè)面中填寫(xiě)采購(gòu)量及選擇供貨商,然后就可以創(chuàng)建采購(gòu)單,供貨商相同的采購(gòu)單生成一張采購(gòu)請(qǐng)求單。采購(gòu)請(qǐng)求單生成后調(diào)用系統(tǒng)工具包中的toXML方法生成采購(gòu)單的XML文檔,再調(diào)用sendMessage方法將其發(fā)送給供應(yīng)商。采購(gòu)人員可以根據(jù)供貨商系統(tǒng)的回應(yīng)修改或者刪除采購(gòu)請(qǐng)求單。

3.3Entity Bean實(shí)現(xiàn)

系統(tǒng)主要包括InventoryTbBMP、MerchandiseTbBMP、AddressTbBMP、PurchaseTbBMP、PurchaseItemTbBMP、SupplierTbBMP、AccountTbbmp等Entity Bean。

以InventoryTbBMP為例,一個(gè)Entity Bean由四個(gè)類組成:InventoryTbPK.class是數(shù)據(jù)表InventoryTb主鍵的對(duì)象表示;InventoryTb.class是InventoryTbBMP的Remote接口類;InventoryTbHome.class是InventoryTbBMP的Home接口類;InventoryTbBMP.class是InventoryTbBMP的Bean體,它實(shí)現(xiàn)Home接口中的create、remove、findLowQuantity、findPK等方法,并實(shí)現(xiàn)Remote接口中的getQuantity等方法。

3.4消息傳輸實(shí)現(xiàn)

3.4.1消息格式

e-WarehouseMS系統(tǒng)和供應(yīng)商之間的消息格式采用基于cXML1.1(Commerce eXtensible Markup Language)標(biāo)準(zhǔn)的XML文檔[8]。系統(tǒng)包括OrderRequest.xml(系統(tǒng)對(duì)供應(yīng)商的采購(gòu)請(qǐng)求消息)和OrderResponse.xml(供應(yīng)商對(duì)系統(tǒng)采購(gòu)請(qǐng)求的響應(yīng)消息)兩種消息。第2種消息內(nèi)容相對(duì)簡(jiǎn)單,其定義的關(guān)鍵部分如下:

<cXMLversion=\"1.1.006\"xml:lang=\"en-US\"payloadID=\"???\"...>

<Response> /*采購(gòu)請(qǐng)求單確認(rèn)信息的標(biāo)簽*/

<Status code=\"xxx\" text=\"OK\"/>

</Response>

</cXML>

3.4.2消息傳輸?shù)腏MS實(shí)現(xiàn)

JMS支持點(diǎn)到點(diǎn)(Point-to-Point)消息和發(fā)布/訂閱(public-subscript)消息模型的消息[7]216。根據(jù)需求,e-WarehouseMS系統(tǒng)采用點(diǎn)到點(diǎn)模型比較適合。消息系統(tǒng)采用Weblogic Server應(yīng)用服務(wù)器中集成的JMS。

(1)消息發(fā)送實(shí)現(xiàn)

消息發(fā)送是系統(tǒng)將生成的采購(gòu)請(qǐng)求單OrderRequest.xml文檔發(fā)送給供應(yīng)商,由系統(tǒng)工具包的msgSend.class類實(shí)現(xiàn),msgSend.java中關(guān)鍵是sendMessage方法,其主要代碼為:

Context context=getInitialContext(url.tostring()); /*url是消息接收方的端口地址對(duì)象*/

Queue queue=(Queue)context.lookup(stringQueue); /*stringQueue是消息隊(duì)列名*/

QueueConnectionFactory queueconnectionfactory=

(QueueConnectionFactory)context.lookup(JMS_FACTORY);

QueueConnection queueconnection=queueconnectionfactory.createQueueConnection();

QueueSession queuesession=/*創(chuàng)建一個(gè)消息對(duì)話*/

queueconnection.createQueueSession(1, Session.AUTO_ACKNOWLEDGE);

QueueSender queuesender=queuesession.createSender(queue); /*創(chuàng)建QueueSender*/

TextMessage textmessage=queuesession.createTextMessage();

textmessage.setText(stringXML); /*添加內(nèi)容(XML文檔)到消息中*/

Queuesender.send(textmessage); /*發(fā)送消息*/

(2)消息接收實(shí)現(xiàn)

也由系統(tǒng)工具包的msgReceive.class類實(shí)現(xiàn),與消息發(fā)送的實(shí)現(xiàn)類似,msgReceive.java中receiveMessage方法的主要代碼為:

QueueReceiver queuereceiver

=queuesession.createReceiver(queue); /*創(chuàng)建QueueReceiver*/

textmessage=(TextMessage)queuereceiver.receive(); /*接收TextMessage*/

String stringXML=textmessage.getText(); /*提取textmessage中的XML文檔*/

(3)XML解析實(shí)現(xiàn)[9]

包括供應(yīng)商對(duì)采購(gòu)單的XML文檔和對(duì)采購(gòu)單響應(yīng)的XML文檔的解析。由系統(tǒng)工具包中的parserOrderRequest.class和parserOrderResponse.class實(shí)現(xiàn)。采購(gòu)單響應(yīng)的XML文檔結(jié)構(gòu)簡(jiǎn)單,解析相對(duì)簡(jiǎn)單。parserOrderRequest.java的主要方法如下:

private Stack tagStack=new Stack(); /*標(biāo)記的堆棧,存放解析提取的信息*/

OrderRequest or=new OrderRequest(); /*or為解析后的采購(gòu)單對(duì)象*/

public void startDocument(); /*對(duì)XML文檔開(kāi)始事件的處理*/

public void endDocument(); /*實(shí)現(xiàn)XML文檔結(jié)束事件的處理*/

public void startElement(); /*對(duì)標(biāo)記開(kāi)始事件的處理*/

public void endElement(); /*實(shí)現(xiàn)對(duì)標(biāo)記結(jié)束事件的處理*/

public void characters(); /*實(shí)現(xiàn)對(duì)標(biāo)記文本的解析*/

public static OrderRequest getOrderRequest(); /*解析并得到OrderRequest對(duì)象or */

其中g(shù)etOrderRequest方法的主要代碼如下:

parserOrderRequest por=new parserOrderRequest();

Parser parser=ParserFactory.makeParser(\"xml.parsers.SAXParser\"); /*創(chuàng)建解析實(shí)例*/

parser.setDocumentHandler(por); /*設(shè)置文檔處理器供解析時(shí)回調(diào)*/

parser.parser(sXml); /*開(kāi)始解析*/

return por.or; /*返回解析XML文檔得到的OrderRequest對(duì)象*/

4總結(jié)及下一步的工作

本文在J2EE平臺(tái)上構(gòu)建的e-WarehouseMS系統(tǒng)是用Jbuilder8.0開(kāi)發(fā)的,應(yīng)用服務(wù)器為Weblogic7.0,數(shù)據(jù)庫(kù)是Oracle9i,具有速度快、穩(wěn)定、擴(kuò)展性好、易維護(hù)的特點(diǎn)。e-WarehouseMS系統(tǒng)的應(yīng)用表明基于J2EE規(guī)范的四層結(jié)構(gòu)能很好地適應(yīng)Web開(kāi)發(fā)的需要。在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天,基于J2EE平臺(tái)上的應(yīng)用必將得到進(jìn)一步的研究和完善,如EJB3.0規(guī)范的推出,已經(jīng)越來(lái)越體現(xiàn)出J2EE的優(yōu)勢(shì)。

下一步的工作是數(shù)據(jù)倉(cāng)庫(kù)和決策支持系統(tǒng)的研究與構(gòu)建,以更好地為購(gòu)物超市企業(yè)提供科學(xué)的數(shù)據(jù)管理與效益分析,提供合理的投資與風(fēng)險(xiǎn)控制決策。

參考文獻(xiàn):

[1] 李高林,姜昱明. 在基于JSP的電子商務(wù)應(yīng)用中利用UML建模與開(kāi)發(fā)技術(shù)[J]. 計(jì)算機(jī)應(yīng)用研究,2004,21(5):121-122.

[2] 王映. 基于UML的J2EE體系結(jié)構(gòu)系統(tǒng)建模[J]. 江南大學(xué)學(xué)報(bào):自然科學(xué)版,2003,2(5):462-465.

[3] 劉勇,李臘元. 基于J2EE的企業(yè)級(jí)系統(tǒng)的研究與應(yīng)用[J]. 武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版,2004,28(1):26-29.

[4] 姚俊,程耕國(guó),等. 基于J2EE的分布式體系及應(yīng)用[J]. 武漢科技大學(xué)學(xué)報(bào):自然科學(xué)版,2003,26(4):393-394.

[5] 寇毅,吳力文. 基于MVC設(shè)計(jì)模式的Struts框架的應(yīng)用方法[J]. 計(jì)算機(jī)應(yīng)用,2003,23(11):91-93.

[6] Ted Husteel, Cedric Dumoulin, David Wiwerfeldt. Struts in Action[M]. Manning Publication co, 2001.

[7] Gregory Nyberg, Robert Patrick. 精通BEA WebLogic Server——構(gòu)建與部署J2EE應(yīng)用的最佳策略[M]. 王松,徐以新,等譯. 北京:電子工業(yè)出版社,2004.

[8] 陳安娜,曹陽(yáng),等. 基于cXML標(biāo)準(zhǔn)的電子商務(wù)交易系統(tǒng)的研究與實(shí)現(xiàn)[J]. 武漢大學(xué)學(xué)報(bào):理學(xué)版,2002,48(5):613-616.

[9] 許繼元,楊翠娥,等. 基于J2EE和XML技術(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的提取和解析[J]. 儀器儀表用戶,2004,11(1):93-94.

主站蜘蛛池模板: 国产午夜一级毛片| 欧美.成人.综合在线| 四虎国产成人免费观看| 国产成人一区在线播放| 无码福利日韩神码福利片| 国产福利不卡视频| 成人国产一区二区三区| 亚洲国产成人麻豆精品| 亚洲一区二区三区国产精品| 另类综合视频| 国产综合亚洲欧洲区精品无码| 黄色不卡视频| 久久青草热| 国产毛片不卡| 一级做a爰片久久毛片毛片| 欧美97色| 国产成人精品亚洲日本对白优播| 91黄视频在线观看| 国产在线一区视频| 国产无遮挡裸体免费视频| 亚洲第一区欧美国产综合| 国产在线第二页| 99这里精品| 波多野结衣久久高清免费| 高清免费毛片| 国产成人免费手机在线观看视频| 亚洲首页国产精品丝袜| 国产在线视频导航| 欧美日韩国产在线观看一区二区三区 | 国产精品免费露脸视频| 亚洲精品777| 另类欧美日韩| 91久久精品日日躁夜夜躁欧美| 国产亚洲欧美另类一区二区| 亚洲中文在线看视频一区| 亚洲高清中文字幕| 亚洲成av人无码综合在线观看| 啪啪免费视频一区二区| 国产亚卅精品无码| 精品偷拍一区二区| 日本久久网站| 国产屁屁影院| 日韩一区精品视频一区二区| 99re热精品视频国产免费| 98精品全国免费观看视频| 亚洲精品卡2卡3卡4卡5卡区| 99re这里只有国产中文精品国产精品| 天天视频在线91频| www.亚洲天堂| 亚洲欧洲综合| 亚洲成人77777| 91网红精品在线观看| 亚洲精品成人7777在线观看| 亚洲视频二| h视频在线观看网站| 国产高清自拍视频| 国产精品熟女亚洲AV麻豆| 日韩免费无码人妻系列| 无码福利视频| 天天躁日日躁狠狠躁中文字幕| 波多野结衣亚洲一区| 午夜日韩久久影院| 精品自窥自偷在线看| 亚洲最猛黑人xxxx黑人猛交 | 中文字幕精品一区二区三区视频| 青青草欧美| aaa国产一级毛片| 欧类av怡春院| 欧美在线伊人| 亚洲中文字幕97久久精品少妇| 99成人在线观看| 黄片一区二区三区| 免费av一区二区三区在线| 久久综合色播五月男人的天堂| 国产精品毛片一区| 欧美日韩国产综合视频在线观看| 国产视频a| 国产综合精品日本亚洲777| 国产成人久视频免费| 久久久久国产精品嫩草影院| 99精品一区二区免费视频| 又爽又大又光又色的午夜视频|