版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(医疗药品管理)药品仓库管理系统
沈阳航空航天大学课程设计报告课程设计名称:软件综合课程设计课程设计题目:药库管理软件院(系):计算机学院专业:计算机科学与技术班级:94010104学号:姓名:王若平指导教师:张潞完毕日期:1月11日目录TOC\o"1-3"\h\u第1章概要设计21.1题目的规定与需求分析21.2数据库概念模型设计31.3总体方案设计3第2章具体设计52.1数据库逻辑模型设计52.1.1药品表52.1.2仓库表62.1.3库存信息表62.1.4进销存信息详单表72.1.5顾客表72.2系统管理员端功效具体设计82.2.1药品信息管理模块82.2.3进销存详单模块92.2.4仓库信息管理模块102.3其它参数管理模块11第3章调试分析133.1hibernate连接Mysql数据库问题133.2程序中的空指针异常问题133.3药品信息查询多条件查询问题143.4药品库存保质期到期报警功效问题14第4章使用阐明154.1登陆界面154.2进入系统首页154.3药品信息管理164.3.1药品信息录入:164.3.2药品信息删除164.3.3药品信息查询174.3.4药品库存管理174.3.5药品进销存详单管理184.4结论19第五章参考文献20附录(程序清单)21概要设计1.1题目的规定与需求分析药库管理系统规定设计并实现药品进、销、存、盘点、分析、报警等最基本的功效,规定具体精确到批次及使用期限的管理细度。系统重要功效涉及:(1).药品入库解决:对药品信息的录入管理。(2).药品出库解决:对药品从仓库提出的管理。(3).药品调拨解决:当某一药库药品库存局限性时,可从其它的药库进行调拨。(4).药品调价解决:对已录入药品的价格和即将录入的药品价格进行调节。(5).药品到期报警:当药品保质期低于某个限定值时,进行警告解决。(6).药品库缺报警;当药品的库存量低于某个限定值时,进行警告解决。(7).库存盘点管理:显示库存内的药品信息,管理出库还是入库。(8).库存分析管理:显示现在状态下的库存信息,并进行分析。(9).药品流向跟踪:显示药品从药库离开后的走向。基于数据库的药库管理系统,使用Java作为编程语言,数据库采用Mysql关系型数据库。对本系统的具体需求分析以下:药品管理功效:药品的添加:该模块将实现对供货商提供的药品基本信息的添加功效。药品基本信息涉及:药品编号,药品名称、所在仓库、药品价格、生产日期、药品规格、保质时长、药品描述。药品的查询:该模块实现针对不同条件查询药品列表的功效。查询的基本信息涉及:药品编号,药品名称,所在仓库。药品的更新:对药品的基本信息的更新功效。药品的删除:该模块将实现对药品基本信息的删除功效。药品的出库:就是将药品的个数减少,如果要删除的个数不不大于库存个数则系统应当进行提示。药品进销存详单:就是药品的进销存状况的统计。药品库存详单:就是药品库存信息状况的统计。1.2数据库概念模型设计根据实际的设计规定,本程序的数据库共有五张基本表构成,分别是:顾客表、药品表,仓库表,库存信息表,进销存具体表,其中仓库表与药品表、药品表与进销存具体表为单项的一对多关系,维护端是药品表,除顾客表之外其它的表都是以药品编号来互有关联,关系表E-R图如图1.1所示:生产日期生产日期药品价格药品价格药品编号药品编号11MM关联关联关联关联状态状态11药品个数药品个数药品编号药品编号日期库存个数名库存个数名仓库名图1.1系统E-R图1.3总体方案设计根据题目规定,本系统采用是B/S构造设计的,系统管理员含有的操作是药品信息管理,药品进退详单管理,销售信息管理,药品信息类别管理,个人信息管理,计费详单管理。如图1.2所示:药库管理信息主界面药库管理信息主界面仓库信息管理库存信息管理仓库信息管理库存信息管理顾客密码修改仓库信息查询药品信息顾客密码修改仓库信息查询药品信息查询查看库存信息进销存信息查询 图1.2药库管理系统功效模块图在系统管理员登陆系统后,能够进行的操作有:药品信息管理,药品信息管理中涉及:药品信息列表的查看,也可通过药品信息的条件查询得到药品的信息列表,药品信息的解决:增加,修改,删除,价风格节,药品的过期报警,药品库缺提示。尚有就是该药品的库存信息的查看,同时在其中能够进行库存个数的增删操作。仓库信息管理,仓库信息管理中涉及:仓库信息的查看,仓库信息的增加,修改,删除。进销存详单管理,药品进销存详单中涉及:进销存信息的查询和进销存信息报表的显示。库存信息管理,库存信息管理中涉及:库存信息列表查看,销库存信息报表的查看。其它参数管理,其它参数管理涉及顾客密码修改,顾客安全退出(session设为不可用)。第2章具体设计2.1数据库逻辑模型设计本系统数据库采用MySQL数据库,数据库名称为“store”。系统的E-R图表明仓库表与药品表、药品表与进销存详单表为一对多的关系,其它表通过药品编号与药品表关联。共设计下列5个表:顾客表admin、药品表medicine、库存信息表medicinestock、仓库表store、进销存信息详单表medicinedetail。各个数据表具体属性列以下所示(有下划线的为该表的主键):顾客信息(账号,密码,顾客状态)此为顾客信息实体对应的关系模式。药品信息(药品编号,药品名称,药品价格,生产日期,药品规格,药品描述,药品对应仓库ID)此为药品信息实体对应的关系模式。仓库信息(id,仓库名)此为仓库信息实体对应的关系模式。药品库存信息(id,药品编号,库存个数)此为药品库存信息实体对应的关系模式。进销存详单信息(id,药品编号,药品售价,药品个数,保质日期,进销存状态,标示)此为进销存详单实体对应的关系模式。2.1.1药品表药品表以下表2.1所示:表2.1药品表字段名称字段类型与否为空阐明idInt(11)No主键medicineNovarchar(30)No药品编号medicineNamevarchar(30)Yes药品名称medicinePricevarchar(10)Yes药品价格medicineDescribevarchar(255)Yes药品描述medicineCreateDatevarchar(30)Yes生产日期medicineKeepTimevarchar(10)Yes保质期medicineSpecificationvarchar(30)Yes药品规格medCountInt(11)Yes药品个数storeIdInt(11)Yes仓库名dateStatusInt(11)Yes标示阐明:此表用于寄存供应商提供的药品的基本信息,涉及药品编号、药品名称、药品价格、药品规格、药品描述、药品个数表、生产日期、保质期等属性。其中的药品编号是该表的主键,仓库名是该表的外键,与仓库表关联,其它的属性都用于药品信息的描述,药品价格的单位为元。2.1.2仓库表仓库表以下表2.2所示:表2.2仓库表字段名称字段类型与否为空阐明idInt(11)No主键storeNamevarchar(30)Yes仓库名称阐明:此表用于寄存仓库信息,用于对仓库解决的一种表,该表与药品表的关系是一对多的关系,单向的,维护端是药品表,该表的主键是mysql中自带的id字段,药品表的storeName与之关联,并且id为整形,自增的方式生成的。2.1.3库存信息表库存信息表以下表2.3所示:表2.3仓库表字段名称字段类型与否为空阐明idInt(11)No主键stockMedicineNovarchar(20)yes药品编号stockMedicineCountint(11)Yes库存个数阐明:库存信息表是对对应药品在药库的库存量的一种统计表,该表与药品表是多对一的关联关系,其中stockMedicineNo是药品编号与药品表的medicineNo对应,stockMedicineNo属性相称于该表的外键列,stockMedicineCount是该药品的库存个数。2.1.4进销存信息详单表药品销售详单表以下表2.4所示:表2.4药品销售详单表字段名称字段类型与否为空阐明idInt(11)No主键detailMedicineNovarchar(20)yes药品编号detailDatevarchar(20)Yes日期detailMedicineCountInt(11)Yes药品个数detailStatusIntr(11)Yes标示阐明:药品销售详单表是对药品销售状况的统计,涉及药品编号,销售个数,销售时间,销售价格。其中detailMedicineNo是药品编号与药品表的medicineNo对应,detailMedicineNo属性相称于该表的外键列。detailMedicineCount是药品个数,detailStatus是标示,detailDate是药品的生产时间,该字段与药品表的保质期时间构成查询条件,能够通过时间来判断药品与否过期。2.1.5顾客表顾客表以下表2.7所示:表2.5顾客表字段名称字段类型与否为空阐明idInt(11)No主键adminNamevarchar(20)Yes顾客名adminPassvarchar(20)Yes顾客密码adminStatusInt(11)Yes顾客标示阐明:顾客表是整个系统全部顾客的基本表。涉及顾客名,顾客密码,顾客标示。顾客在登录时通过顾客标示属性来判断该顾客的身份,1表达是系统管理员,0表达是普通顾客。2.2系统管理员端功效具体设计系统管理员端涉及“药品信息管理”,“药品进退详单”,“销售信息管理”,“仓库管理”,“药品费用统计”,“其它参数管理”六个模块。前5个模块都是对药品信息的基本操作,有对药品信息录入,药品信息的更新,药品信息的删除,药品信息的查看,药品信息列表的展示,药品销售信息列表展示,药品进出库信息的展示,药品利润信息的展示。每个模块都有一种具体的表来管理,通过javaweb中的ssh框架来配备各模块的对应操作。最后一种模块算是系统的基本模块,就是对顾客信息的某些操作,本系统涉及的是顾客密码的修改,顾客的安全退出,各模块的功效以及具体的设计状况以下所述:2.2.1药品信息管理模块该模块重要的功效是为管理员提供对药品信息的某些基本操作,列表查看,药品的录入(入库),药品信息的修改,药品信息的删除。药品库存的管理功效;在顾客添加完药品后,顾客删除药品后,顾客修改完药品信息后,页面会跳到药品信息列表。使用的是struts2.0框架(javaweb中的一种MVC框架)的控制配备文献来控制页面的跳转及参数的传递,具体配备以下:<actionname="medicine_*"class="medicineAction"method="{1}"><resultname="modify">medicineUpdate.jsp</result>//返回成果为modify跳到medicineUpdate.jsp<resultname="add">medicineAdd.jsp</result>//返回成果为add跳到medicineAdd.jsp<resultname="view">medicineStockView.jsp</result>//返回成果为view跳到medicineStockView.jsp<resultname="input">{1}.jsp</result>//返回成果是***就跳到***.jsp文献中<resultname="list">medicineList.jsp</result>//返回成果是list就跳到medicineList.jsp文献中</action>阐明这个是struts2.0的struts.xml配备文献,它控制页面的跳转,在java类的办法中,返回成果就是return“***”中的***参数。对于药品库存信息的管理功效,如果是添加药品的话,输入药品个数即可,如果是出库的话,输入的个数不不大于库存数量的话,系统会有提示,回到库存管理页面。具体流程图2.1以下:图2.1库存管理操作功效示意图2.2.3进销存详单模块该模块重要的功效是统计药品出入库时的信息统计,并对该信息进行备注标明,重要是药品进销存详单列表查询,详单查询,详单备注修改,详单删除的管理功效。管理员能够对出入库信息的实时状态进行查询,在列表中有一种状态属性,该属性用于标示药品是入库还是出库,这样更有助于管理员清晰该信息的含义,管理员能够对详单的具体一条信息进行具体信息的查看,同时能够加入该条信息的有关备注信息,方便后来维护。具体具体流程图如图2.2所示:图2.2进销存详单功效示意图2.2.4仓库信息管理模块该模块重要的功效是对仓库信息的管理,涉及类别信息的增加,删除,修改,类别信息列表查看功效。该模块是最基本的增删改查操作,管理员能够对仓库信息进行全方位的管理,注意的是,在删除仓库信息时,如果有药品已经在这个仓库下的话,系统会提示改类不能够被删除。具体具体流程图如图2.3所示:图2.3仓库信息管理功效示意图2.3其它参数管理模块该模块是本系统的一种共通模块,重要作用是修改顾客的个人信息即顾客的密码,尚有就是顾客的安全退出操作。对于顾客密码的修改,首先规定是必须输入旧密码,来确认现在顾客真的就是正在使用该系统的顾客,另首先就是新密码必须输入两次,确认一下方可,这样确保了系统的整体安全性。对于顾客的安全退出意思就是顾客点击退出连接后,在顾客登录时的session对象被设立成了不可用的状态,这样在后来有人在访问该页面时就不能够访问该页面了,系统会将页面跳转到登陆页面。下列是核心代码://验证Session与否过期if(!ServletActionContext.getRequest().isRequestedSessionIdValid()//session过期,转向session过期提示页,最后跳转至登录页面return"tologin";}else{Sessionsession=ServletActionContext.getRequest().getSession();admin=(Admin)session.getAttribute("admin");//获取session中保存//的顾客对象if(admin==null){if(url.indexOf("admin_adminLogin")!=-1||url.indexOf("admin_logout")!=-1){returnai.invoke();}else{return"tologin";//未登陆跳转至登陆页面}}else{returnai.invoke();}}}第3章调试分析3.1hibernate连接Mysql数据库问题本系统我使用的是javaweb有关知识点的一种持久层框架hibernate,由于很长时间没有与这个框架接触了,这次在连接数据库时碰到了某些小问题,一种就是在向数据库中加入信息时,普通的英文字母都没有问题,但是当加入中文文字时在数据库中的信息就是??形式的乱码。后来上网查阅了一下资料才懂得,在连接数据库加载配备文献时没有指定连接数据库的编码方式。造成编码方式不一致造成了乱码的问题。解决办法:在jdbc:mysql://:3306/store后加上charaterEncoding=utf-8就能够解决了!3.2程序中的空指针异常问题说到这个问题我想说的是这是个最容易无视的问题,也是最致命的问题,由于我们在编程的过程中往往都会无视它,造成服务器错误信息积累过多造成崩溃,下面我举出一种例子以下://库存出库函数PublicStringmedicineStockDelete(){MedicineStockupdateMedicineStock=medicineService.find();//通过服务类获取更新对象If(deleteCount>updateMedicineStock.getMedicineCount()){//判断删除个数与否不不大于库存个数medicineStock=medicineService.findByNo(no);//通过编号查找库存对象Return“view”;//返回到查看视图}}以上代码的问题就是在查询完信息后,没有判断该对象与否为空,如果对象为空的话那么就会出现空指针异常的问题。3.3药品信息查询多条件查询问题对于这个问题的提出我认为对于后来的多条件查询与否能够做成一种共同的办法来解决,为什么这样说呢,由于多条件查询必然会涉及到诸多的表,这样的话我们应当采用什么方式来把这些属性连接起来形成一种sql语句,并且确保它的对的性。后来我上网查了下资料,解决了sql语句总是拼不对的的问题,就是首先定义一种StringBuffer的对象,然后再将属性进行拼接,如果是多个的话,用一种标示字段来判断与否有上一种属性被查询,这样就能够确保sql的对的性了。3.4药品库存保质期到期报警功效问题采用了以下代码:if(year>nowyear){returnfalse;}elseif(month>nowmonth){returnfalse;}elseif(totalInteger>nowday){returnfalse;}通过依次判断年,月,日,来判断与否过期。第4章使用阐明4.1登陆界面系统登陆界面如图4.1所示:图4.1进入系统界面阐明:该视图为系统的登陆界面,如图示为超市药品信息管理系统,页面共有三个输入框,分别为:顾客名,密码,验证码,在登陆时,管理员,密码,验证码都不准许为空,请输入对的的顾客名和密码,并且输入与图片相符的验证码,点击登陆按钮就能够进入该系统,如果对您输入的信息不满意,点击重置按钮,三个输入框将变成空,在顾客用对应的顾客名密码登陆时,系统会根据该顾客的身份进入到不同的管理界面去。页面尚有本系统的使用阐明连接,如果顾客不理解该系统的使用,能够点击进入学习一下本系统的基本操作。4.2进入系统首页系统首页界面如图4.2所示:图4.2系统首页阐明:在顾客成功登陆后进入到了系统的管理界面,本界面分为三部分,上面的蓝色条为页头统计登陆顾客的基本信息,在右上角有退出系统提示,在左边下拉栏的是系统管理员含有的功效操作,涉及药品信息管理,药品进销存详单管理,药品信息管理,仓库信息管理,其它参数管理。右边是欢迎界面,包含了某些该系统的阐明及规定信息。4.3药品信息管理4.3.1药品信息录入:该界面是供应商提供的药品信息录入的界面,规定就是输入对的的规范的数据,其中药品规格,药品价格,药品个数都必须是数字且不能为空,仓库必须选择,药品名称不能为空!药品描述能够添加文献(涉及图片),在全部信息输入完毕后点击提交按钮,如果提交成功的话,页面将返回到药品列表页面,如果未成功系统会有有关提示。药品信息更新界面如图4.3所示:图4.3药品信息录入页面阐明:该界面是供应商提供的药品信息更新的界面,规定就是输入对的的规范的数据,药品价格,药品规格,药品个数都必须是数字且不能为空,仓库必须选择,药品名称不能为空!在全部信息输入完毕后点击提交按钮,如果提交成功的话,页面将返回到药品列表页面,如果未成功系统会有有关提示。4.3.2药品信息删除药品信息删除界面如图4.4所示:图4.4药品信息删除页面阐明:如图示,在操作栏中的最后一种操作是对本药品的删除操作,但是顾客在对于要删除的药品时需注意一下,如果库存中尚有该药品的话系统会提示库存中仍然存在该药品与否确认删除,如果确认删除的话,该药品即可被删除,且是该药品的库存信息也会被删除。如果取消的话,操作终止。4.3.3药品信息查询药品信息查询界面如图4.5所示:图4.5药品信息查询页面阐明:如图示,在药品信息查询上,提供了如上几条查询条件,顾客在操作时应遵照以下方式,如果顾客什么都没有输入的话,点击查询按钮后系统会把全部的药品信息全部显示出来,如果在以上几个输入框中输入数据了的话,系统会根据输入的条件进行查询,即是按照输入条件都满足的状况进行的查询。其中查询条件有:药品编号(全匹配),药品名称(全匹配),所在仓库。4.3.4药品库存管理该页面是药品库存信息操作界面,并图中能够有两种操作,第一种操作时是对药品库存添加药品的“入库”按钮,一种是将该药品出库的“出库”按钮,当点击添加该药品后或出现以下界面,如图4.6所示:图4.6药品库存添加页面阐明:图中有一种添加个数的输入框,输入的值必须为整数,且不能为空!点击提交后如果成功页面将返回到药品列表界面。此时会有一条统计药品出库的信息被加入到进销存详单列表中。图中有一种出库个数的输入框,输入的值必须为整数,不能为空!如果输入值不不大于系统中该药品的库存数量,则系统会提示库存量局限性的消息,否则跳到药品列表,标示药品出库成功。此时会有一条统计药品出库的信息被加入到进销存详单列表中。4.3.5药品进销存详单管理药品进销存详单管理界面如图4.7所示:图4.7药品进销存详单页面阐明:如图所示展示的是药品进销存状况,顾客在库存管理中的操作普通都统计在该列表中,顾客能够查看每一条详单的状态,一种是药品的入库,另一种是药品的出库。顾客还能够修改该信息的备注,查看单条详单具体信息,删除对应订单操作,由于比较直观在此不作阐明,其中需要注意的是详单的备注,普通都是在药品入库时加入的,当点击查看或修改按钮时会看到改备注信息,方便顾客对药品出入库因素有所理解。4.4结论本次课程设计通过测试运行,达成课设预期目的,但由于我有考试的缘故,造成在仓促时间里,没能完毕全部功效,例如药品调拨解决,药品流向跟踪这两大功效未能实现。而其它七大功效:药品入库解决、药品出库解决、药品调价解决、药品到期报警、药品库缺报警、库存盘点管理和库存分析管理功效已实现,完毕课设的预期目的。第五章参考文献[1]吴仁群.Java基础教程[M].清华大学出版社,[2]黎连业.计算机管理信息系统设计与实施.[M].中国财政经济出版社,[3]周小彤.Java从入门到精通(第二版)[M].清华大学出版社,[4]张志峰.Java程序设计与项目实训教程[M].清华大学出版社,[5]刘新.Java开发技术大全[M].清华大学出版社,[6]萨师煊,王珊.数据库系统概论[M].高等教育出版社,[7]清宏计算机工作室.JAVA编程技巧[M].机械工业出版社,[8]朱红,司光亚.JAVAWeb编程指南[M].电子工业出版社,[9]耿祥义,张跃平.JAVA实用教程[M].清华大学出版社,[10]赛奎春.JAVA工程应用与项目实践[M].机械工业出版社,附录(程序清单)<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"""><struts><!--设立Web应用的默认编码集为UTF-8--><constantname="struts.i18n.encoding"value="utf-8"/><!--设立Web应用的默认Locale为zh_CN--><constantname="struts.locale"value="zh_CN"/><!--设立Struts2应用的国际化资源文献,多个文献中间可用逗号分隔--><constantname="struts.custom.i18n.resources"value="messageResource"/><!--设立Struts2默认的ObjectFactory为spring--><constantname="struts.objectFactory"value="spring"/><!--设立Struts2应用与否处在开发模式,普通在开发调试阶段设为true,正式上线后可设为false--><constantname="struts.devMode"value="true"/><constantname="struts.multipart.saveDir"value="C:/temp"/><constantname="struts.multipart.maxSize"value=""/><constantname="struts.multipart.parser"value="jakarta"/><includefile="struts-default.xml"></include><packagename="default"extends="struts-default"namespace="/admin"><interceptors><interceptorname="loginedCheck"class="erceptor.LoginedCheckInterceptor"/></interceptors><global-results><resultname="tologin"type="redirect">/login.jsp</result><result>right.jsp</result></global-results><actionname="admin_*"class="adminAction"method="{1}"><resultname="index">index.html</result><resultname="input">{1}.jsp</result><interceptor-refname="loginedCheck"/><interceptor-refname="defaultStack"/></action><!--仓库信息action--><actionname="store_*"class="storeAction"method="{1}"><resultname="modify">storeUpdate.jsp</result><resultname="input">{1}.jsp</result><resultname="list">storeList.jsp</result><resultname="toStoreList"type="redirectAction"><paramname="actionName">store_storeList</param><paramname="namespace">/admin</param></result><interceptor-refname="loginedCheck"/><interceptor-refname="defaultStack"/></action><!--药品信息action--><actionname="medicine_*"class="medicineAction"method="{1}"><resultname="modify">medicineUpdate.jsp</result><resultname="add">medicineAdd.jsp</result><resultname="input">{1}.jsp</result><resultname="list">medicineList.jsp</result><resultname="view">medicineStockView.jsp</result><resultname="toMedicineList"type="redirectAction"><paramname="actionName">medicine_medicineList</param><paramname="namespace">/admin</param></result><resultname="success"type="stream"><paramname="contentType">application/vnd.ms-excel</param><paramname="inputName">excelStream</param><paramname="contentDisposition">attachment;filename="${fileName}.xls"</param><paramname="bufferSize">1024</param></result><interceptor-refname="loginedCheck"/><interceptor-refname="defaultStack"/></action></package></struts><?xmlversion="1.0"encoding=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论