• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于J2EE的中藥材庫存管理系統(tǒng)的應用研究

    2010-02-25 07:35:22
    陜西科技大學學報 2010年5期
    關鍵詞:出庫入庫中藥材

    張 博

    (亳州職業(yè)技術學院計算機系, 安徽 亳州 236800)

    0 前言

    J2EE架構(gòu)是當前主流的架構(gòu)之一,企業(yè)采用J2EE架構(gòu)作為解決方案已經(jīng)成為業(yè)界的發(fā)展趨勢.J2EE體系結(jié)構(gòu)提供中間層框架,可以滿足高可用性、高可靠性以及可擴展性的應用需求.通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應用的費用和復雜性,同時提供了對現(xiàn)有應用程序集成的強有力支持,具備良好的部署應用,為用戶提供了統(tǒng)一安全模型和靈活的事務處理控制.在J2EE應用中,Struts是一種非常優(yōu)秀的MVC應用框架.如何開發(fā)出層次分明、結(jié)構(gòu)清晰、可復用性的系統(tǒng),是當前企業(yè)級開發(fā)的主要目標.Struts框架給我們實現(xiàn)這樣的目標提供了一個很好的機會.

    1 研究背景與意義

    亳州地處安徽北部,氣候和土壤適宜中藥材的生長,自古以來就有中藥材種植和交易的歷史,交易量居全國四大藥都之首,被譽為“中華藥都”.亳州建有全國最大的中藥材交易中心,年成交額100億元以上,交易輻射全國30個省、市、自治區(qū).在亳州已經(jīng)取得GMP認證的中藥企業(yè)已達到40余家,成為了全國最大的中藥飲片生產(chǎn)基地,取得《藥品經(jīng)營許可證》的企業(yè)860余家,其中通過GSP認證的703家,直接從業(yè)人員達15萬之眾,基本涉及中藥的種植、生產(chǎn)、加工、銷售各領域.

    由于中藥材的保存時間、藥物效果、對環(huán)境的要求等特殊特點,同時藥材的品種不同,國家對中藥材、成藥的管理要求不同,因此和一般的商品相比較,對中藥材的庫存、流通和運輸提出了更高的要求,其中庫存又成為中藥企業(yè)在生產(chǎn)過程中提高企業(yè)生產(chǎn)效率和控制藥材損耗至關重要的環(huán)節(jié).

    通過對中國(亳州)中藥材交易中心、華佗國藥廠、新興飲片廠等8家中藥材相關企業(yè)的調(diào)查后發(fā)現(xiàn),雖然大部分企業(yè)都使用了計算機進行庫存管理,但是采用的方案都是市場上通用的進銷存系統(tǒng),這些通用系統(tǒng)雖然可以提高企業(yè)統(tǒng)計人員填寫報表的速度,卻沒有針對中藥企業(yè)的生產(chǎn)特點和管理模式進行優(yōu)化,無法完全實現(xiàn)對藥材的分類管理、倉儲狀態(tài)監(jiān)測、出入庫管理、網(wǎng)絡在線查詢等功能.

    而由SUN公司提出的J2EE(Java2 Platform Enterprise Edition)架構(gòu),通過服務器組件的形式,將系統(tǒng)部件進行封裝,提高了程序的重用性、擴展性和安全性,降低了開發(fā)過程中的成本,提高了系統(tǒng)的穩(wěn)定性和可移植性,具有廣泛的開發(fā)前景.

    本文就如何利用基于Struts技術的J2EE平臺,構(gòu)建高效的中藥庫存管理系統(tǒng)進行了積極的嘗試.

    2 Struts框架的實現(xiàn)原理

    2.1 Struts框架的基本原理

    Struts實際上是基于JSP Model 2模式下的一種MVC框架.Struts的目標是希望分離Web程序的表示層、控制層和功能層,使程序員有更多的精力投入到后臺的業(yè)務邏輯設計中去.

    和其它的Java架構(gòu)一樣,Struts也是面向?qū)ο笤O計,它將MVC模式分離為顯示邏輯和業(yè)務邏輯兩部分.在Structs 框架中,模型由Javabeans或者EJB組件擔當,控制器由Action和Actionservlet實現(xiàn)主要功能,視圖由JSP文件組成.圖1為Struts框架的實現(xiàn)原理圖.

    圖 1 Struts框架原理圖 圖2 中藥材庫存管理系統(tǒng)的模型架構(gòu)

    2.2 Struts框架的優(yōu)勢

    Struts框架使開發(fā)者在構(gòu)建基于Java Servlet和JSP技術的Web應用時更加容易,為開發(fā)者提供了一個統(tǒng)一的標準框架.通過使用Struts作為基礎,開發(fā)者能夠更專注于應用程序的業(yè)務邏輯實現(xiàn).具體來講,Struts的優(yōu)點有:

    (1) Struts和Tomcat、Turbine等諸多Apache項目都屬于是開源軟件,這是它的一大優(yōu)點,使開發(fā)者能更深入地了解其內(nèi)部實現(xiàn)機制和聯(lián)系.

    (2)有豐富的Taglib可以使用.Struts的標記庫Taglib,如能靈活運用,則能大大提高開發(fā)效率.

    (3)頁面導航.頁面導航將是以后的重點發(fā)展方向,通過頁面導航使得系統(tǒng)的實現(xiàn)邏輯更加清晰.

    3 中藥材庫存管理系統(tǒng)的設計

    3.1 模型設計

    在Struts框架中,模型包含了業(yè)務實體和業(yè)務規(guī)則,同時負責訪問持久化數(shù)據(jù),所以在系統(tǒng)中要保持模型的相對獨立性,將模型組件集中在一起,這樣可以大大提高組件的可重用性.在中藥材庫存管理系統(tǒng)中,采用Model 2模型的實現(xiàn)原理,其模型架構(gòu)如圖2所示.

    業(yè)務處理的流程如下:

    (1)用戶通過JSP頁面,將表單數(shù)據(jù)提交到Servlet類.

    (2)Servlet類從表單中獲得數(shù)據(jù).

    (3)Servlet類通過從request中獲得的表單數(shù)據(jù),調(diào)用不同的業(yè)務邏輯JavaBean.

    (4)JavaBean處理完業(yè)務邏輯后調(diào)用DAO數(shù)據(jù)庫接口與中藥材數(shù)據(jù)庫進行數(shù)據(jù)交互.

    (5)DAO通過數(shù)據(jù)傳輸類(DTO)把從數(shù)據(jù)庫獲得的數(shù)據(jù)返回給JavaBean,再傳送給Servlet,最后由JSP頁面將更新的數(shù)據(jù)顯示給用戶.

    3.2 業(yè)務實體設計

    業(yè)務實體在系統(tǒng)中表現(xiàn)為實體域的對象,在數(shù)據(jù)庫中表現(xiàn)為關系數(shù)據(jù).在進行數(shù)據(jù)庫開發(fā)的準備工作中需要將中藥材的類別確定下來.參考《中國藥典》2005版中藥材分類方法,結(jié)合亳州藥材市場的常見藥材種類,在本系統(tǒng)中,將藥材分為3大類:

    (1)植物類藥材:主要包括根莖類、果實子仁類、全草類、菌藻類四小類,如圖3所示.

    圖3 植物類藥材

    (2)動物類藥材.

    (3)其他(礦石)類.

    根據(jù)以上的分類方法,建立中藥材數(shù)據(jù)庫的分類表如表1~表6所示.

    表1 根莖類索引表

    表2 果實子仁類索引表

    表3 全草類索引表

    表4 菌藻類索引表

    表5 動物類索引表

    表6 其他(礦石)類索引表

    在中藥材庫存管理系統(tǒng)中,業(yè)務實體包括:用戶賬號(Account)、客戶賬號、藥材入庫單(Storage invoices)、藥材出庫單(OutStock invoices)、藥材訂單(Herbal Order)、庫存藥材(Stock Herbal).

    3.3 系統(tǒng)功能設計

    本系統(tǒng)主要完成藥材庫庫存的相關功能,包括生成入(出)庫單、庫存藥材清單、完善的數(shù)據(jù)匯總功能、藥材查詢功能及數(shù)據(jù)庫的維護功能.在上述實體關系圖的分析基礎上,需要進行具體數(shù)據(jù)分析和網(wǎng)絡數(shù)據(jù)庫查詢的設計.為完成這些功能,設計了如下模塊:

    (1)用戶認證模塊,完成系統(tǒng)安全檢查維護和用戶授權工作. 用戶輸入用戶名和密碼,提交給后臺服務器進行驗證,通過與用戶表中的數(shù)據(jù)進行比對,允許合法用戶登錄成功;否則給出出錯處理.

    (2)入庫、出庫模塊,進行藥材入(出)庫操作.入庫時,收集入庫信息,包括入庫的藥材種類、產(chǎn)地、規(guī)格、數(shù)量等信息,分別導入數(shù)據(jù)庫中的不同表中,同時打印入庫單.出庫時,用戶首先進行庫存藥材的查詢,獲得當前庫存情況.然后,輸入準備出庫藥材的數(shù)據(jù),與數(shù)據(jù)庫中的相關表中數(shù)據(jù)進行比對,如滿足藥材出庫條件則允許出庫,并打印出庫單.

    圖4 系統(tǒng)功能圖

    (3)查詢模塊,實現(xiàn)比較完善的庫存藥材查詢功能. 用戶可以輸入藥材的種類、產(chǎn)地、規(guī)格、批次,了解實時的庫存情況,同時輸入時間段條件,能夠獲得相應的入出庫操作明細表.

    (4)統(tǒng)計模塊,結(jié)合設計情況,進行庫存數(shù)據(jù)的統(tǒng)計. 用戶輸入需要統(tǒng)計的時間段、藥材種類、產(chǎn)地等條件,系統(tǒng)可以統(tǒng)計出本時間段的入庫表、出庫表、實時庫存等數(shù)據(jù).

    (5) 數(shù)據(jù)維護模塊,維護系統(tǒng)數(shù)據(jù),進行數(shù)據(jù)備份、數(shù)據(jù)導入/ 導出和數(shù)據(jù)恢復功能. 在用戶誤操作或者是其他原因?qū)е孪到y(tǒng)崩潰的時候,能夠進行數(shù)據(jù)的恢復,同時定期進行數(shù)據(jù)備份,允許用戶在權限范圍內(nèi)進行數(shù)據(jù)的的導入/導出工作.

    本系統(tǒng)的功能實現(xiàn)圖如圖4所示.

    4 中藥庫存管理系統(tǒng)的實現(xiàn)

    4.1 用戶登錄

    在struts-config.xml中有代碼1:

    path=“stock/LoginForm”

    type=“org.herblstock.web.struts.action.DoNothingAction”

    validate=“false”

    這個Action沒有name屬性,也就是它沒有與之相關聯(lián)的ActionForm.它的作用就是將請求轉(zhuǎn)發(fā)到/WEB-INF/jsp/struts/LoginForm.jsp頁面上.處理登錄操作的功能由LoginAction來完成.

    4.2 藥材入庫

    該模塊主要實現(xiàn)中藥材的入庫操作.模塊的輸入項主要包括:登藥材的編號、名稱、類別、數(shù)量、所屬公司、入庫的時間等.當用戶輸入數(shù)據(jù)后,系統(tǒng)將數(shù)據(jù)讀入數(shù)據(jù)庫中,同時將入庫信息添加到入庫信息表中,并更新庫存表中的數(shù)據(jù).

    4.3 藥材出庫

    出庫模塊主要實現(xiàn)中藥材的出庫操作.當用戶進行出庫操作前,首先要了解當前的庫存情況,因此在本系統(tǒng)中增加了一個當前庫存狀態(tài)的查詢功能.在輸入出庫的藥材名稱、發(fā)送公司和規(guī)格后就可以查看所查詢的藥材實時庫存情況.

    當滿足出庫條件的時候,打印出庫單,同時更新出庫數(shù)據(jù)表;若不滿足出庫條件,則要求用戶更改出庫訂單.

    4.4 庫存藥材查詢與瀏覽

    查詢模塊包括出入庫數(shù)據(jù)、藥材庫存數(shù)據(jù)統(tǒng)計的查詢.

    查詢功能頁面提供4個可選擇方法:按藥材分類查詢、按藥材產(chǎn)地查詢、按藥材屬性查詢、按客戶類別查詢.用戶選擇自己想要進入的頁面即可.這里以按藥材屬性查詢?yōu)槔榻B一下查詢過程的具體實現(xiàn).

    按藥材屬性查詢的界面提供藥材分類目錄.目錄的每個節(jié)點顯示藥材名稱和類別,用戶點擊節(jié)點,將顯示該類藥材下的具體規(guī)格.

    本模塊主要是采用SQL查詢語言進行編程,通過查詢模塊可以隨時查到當前選中的藥材在倉庫內(nèi)的庫存情況以及相關報表,本系統(tǒng)使用WebLogic Server的JDBC實現(xiàn)數(shù)據(jù)庫操作.

    JDBC對數(shù)據(jù)庫的訪問分為3個方面:一是通過JDBC將數(shù)據(jù)存儲在數(shù)據(jù)庫中,二是使用JDBC更新數(shù)據(jù)庫中的數(shù)據(jù);三是使用JDBC查詢數(shù)據(jù)庫中的數(shù)據(jù).

    在這里,以使用JDBC查詢數(shù)據(jù)為例討論JDBC數(shù)據(jù)庫的訪問.

    在WebLogic Server中,使用JDBC查詢數(shù)據(jù)的過程分為5步,如下:

    (1)建立數(shù)據(jù)庫連接.創(chuàng)建一個新的數(shù)據(jù)庫連接,實現(xiàn)過程如代碼2所示:

    Connection myConn=null;

    Try{

    Context ctx=new initialContext();

    Javax.sql.DataSource ds

    =(javax.sql.DataSource)

    Ctx.lookup(“example-dataSource-demopool”);

    Java.sql.Connection myConn=ds.getConnection();

    } Catch(SQL Exception sqle) {

    }

    這段代碼首先查詢WebLogic Server的JDBC服務,找到訪問的數(shù)據(jù)源,然后創(chuàng)建一個java.sql.Connection類的實例,把ds.getConnection()方法返回的對象賦值給它.通過使用WebLogic Server定義的DataSource對象作為參數(shù),調(diào)用getConnection()方法,可以獲得數(shù)據(jù)庫的配置信息.

    (2)對數(shù)據(jù)庫進行查詢操作.Statement對象用于將SQL語句發(fā)送到數(shù)據(jù)庫中,對數(shù)據(jù)庫的查詢操作由java.sql.Statement類完成.

    首先,利用Connection類的createStatement()方法,創(chuàng)建Statement類的實例.代碼如下:

    Statement stmt=Con.createStatement();

    這個代碼將創(chuàng)建一個當前Statement對象實例:

    Stmt.execute(“SELECT *FROM 數(shù)據(jù)庫表名”);

    ResultSet rs=stmt.getResultSet(); //返回查詢結(jié)果

    (3)讀取查詢結(jié)果. 調(diào)用ResultSet類的方法,讀取其中的數(shù)據(jù).ResultSet對象具有指向當前數(shù)據(jù)行的光標,光標會定位到第一個數(shù)據(jù)行的前面.Next()方法是將光標移動到下一行,當ResultSet對象到達整個數(shù)據(jù)表的最后一行時Next()方法返回false值,因此可以實現(xiàn)掃描整個查詢結(jié)果.

    (4)處理查詢結(jié)果.

    (5)釋放數(shù)據(jù)庫.查詢結(jié)束之后,釋放Statement 和Connection對象.

    4.5 庫存藥材統(tǒng)計

    在系統(tǒng)開發(fā)時,庫存統(tǒng)計一般采用兩種方法.一種是在數(shù)據(jù)庫中建立庫存表,當用戶需要查詢庫存時,直接從數(shù)據(jù)庫表中提取相應的信息,這種方法需要在每次入出庫操作后立即更新庫存表.另一種方法是不建立庫存表,在用戶需要查詢時,立即在相對應的出入庫記錄中重新統(tǒng)計出結(jié)果.與第一種方法相比,這種方法不存在冗余的數(shù)據(jù)庫表,雖然在統(tǒng)計時產(chǎn)生統(tǒng)計數(shù)據(jù),但能夠做到統(tǒng)計數(shù)據(jù)的準確及時.

    本系統(tǒng)采用第二種方式進行庫存藥材的統(tǒng)計,這樣可以保證庫存藥材的實時更新,庫存統(tǒng)計時要涉及到庫存匯總表、各種出入庫表等.用戶只要輸入時間段、需要統(tǒng)計的庫存藥材、藥材產(chǎn)地等系統(tǒng)就能統(tǒng)計出相應的上期庫存、本期入庫數(shù)據(jù)、本期出庫數(shù)據(jù)、當前庫存數(shù)據(jù)等.

    5 結(jié)束語

    本文討論了基于Struts架構(gòu)的中藥庫存管理系統(tǒng)的開發(fā)原理,深入闡述了基于J2EE平臺的中藥材庫存管理系統(tǒng)的構(gòu)建原理.對于建立在Struts架構(gòu)下的具體實現(xiàn)方法進行了很好的嘗試.在系統(tǒng)實現(xiàn)的過程中,將J2EE技術與本地的行業(yè)應用相結(jié)合,在中藥材庫存管理的應用中取得了很好的效果.

    由于接觸J2EE平臺的應用時間不長以及自己的經(jīng)驗不足,本系統(tǒng)還存在著一些不足之處.例如對中藥材的倉儲細化方面的處理還不夠準確,受現(xiàn)階段研究條件和水平的限制,庫存環(huán)境溫度的自動化檢測還不能很好實現(xiàn)等,這些都需要在今后的工作中進一步完善,同時要加強和本地的藥材生產(chǎn)企業(yè)合作,改進系統(tǒng)的不足.

    參考文獻

    [1]邱 哲,王俊標,馬 斗. Struts Web設計與開發(fā)大全[M]. 北京: 清華大學出版社,2005.

    [2]詹 森(Johnson,R), 赫 魯(Hoeller.J).Expert one-on-one J2EE Development without EJB 中文版[M].北京:電子工業(yè)出版社,2005.

    [3]阿 盧(Alur,Deepak).J2EE核心模式[M].北京:機械工業(yè)出版社,2005.

    [4]楊中科.J2EE開發(fā)全程實錄[M].北京:清華大學出版社, 2007.

    [5]羅玉玲,封朋成,梁曉揚,等. J2EE應用開發(fā)詳解[M]. 北京: 電子工業(yè)出版社,2009.

    [6]張 博. 基于Struts的中藥材庫存管理系統(tǒng)的應用研究[D]. 上海:華東師范大學碩士學位論文,2007.

    [7]張國梁. 基于Struts和Hibernate的J2EE Web應用的研究與實現(xiàn)[D]. 上海:華東師范大學碩士學位論,2007.

    [8]Struts,an open-source MVC implementation[EB/OL]. http://www.ibm. com/developer works/library/j-struts/,F(xiàn)eb 2001.

    [9]Struts,MVC 的一種開放源碼實現(xiàn)[EB/OL]. http://www. ibm. com/ developerworks/cn/java/j-struts/,2001.

    猜你喜歡
    出庫入庫中藥材
    夏季中藥材田間管理做好這五點
    中藥材促農(nóng)增收
    重磅!廣東省“三舊”改造標圖入庫標準正式發(fā)布!
    中國食品品牌庫入庫企業(yè)信息公示①
    中國食品(2021年2期)2021-02-24 03:55:35
    宋四清:種植中藥材 托起致富夢
    卷煙配貨出庫流程的優(yōu)化與應用
    散糧出庫 加快騰倉
    “出庫費” 應由誰來付
    DNA提取4種中藥材方法的篩選
    中成藥(2016年8期)2016-05-17 06:08:28
    身臨其境探究竟 主動思考完任務——《倉儲與配送實務》入庫作業(yè)之“入庫訂單處理”教學案例
    人間(2015年8期)2016-01-09 13:12:42
    临颍县| 客服| 隆昌县| 富民县| 九龙县| 和田县| 甘孜县| 巴马| 贵州省| 高清| 广灵县| 临沂市| SHOW| 东明县| 平潭县| 桂平市| 五原县| 濉溪县| 肥西县| 西林县| 衢州市| 翁源县| 德州市| 定襄县| 庄河市| 化德县| 苏尼特左旗| 海口市| 龙里县| 仁怀市| 巩留县| 丰都县| 丽江市| 上蔡县| 宁阳县| 彭阳县| 梧州市| 克什克腾旗| 台东县| 招远市| 嘉义市|