药品仓库管理系统_第1页
药品仓库管理系统_第2页
药品仓库管理系统_第3页
药品仓库管理系统_第4页
药品仓库管理系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【最新卓越管理方案您可自由编辑】(医疗药品管理]药品仓库

管理系统2020年5月多年的企业咨询顾问经验,经过实战验证可以落地执行的卓越管理方案,值得您下载拥有

课程设计报告课程设计名称:软件综合课程设计课程设计题目:药库理软件院(系):计算机学院专业:计算机科学与技术班级:94010104学号:姓名:指导教师:完成日期:2012年1月11日第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题目的要求与需求分析药库管理系统要求设计并实现药品进、销、存、盘点、分析、报警等最基本的功能,要求具体精确到批次及有效期限的管理细度。系统主要功能包括:.药品入库处理:对药品信息的录入管理。.药品出库处理:对药品从仓库提出的管理。.药品调拨处理:当某一药库药品库存不足时,可从其他的药库进行调拨。.药品调价处理:对已录入药品的价格和即将录入的药品价格进行调整。⑸.药品到期报警:当药品保质期低于某个限定值时,进行警告处理。.药品库缺报警;当药品的库存量低于某个限定值时,进行警告处理。.库存盘点管理:显示库存内的药品信息,管理出库还是入库。.库存分析管理:显示当前状态下的库存信息,并进行分析。⑼.药品流向跟踪:显示药品从药库离开后的走向。基于数据库的药库管理系统,使用Java作为编程语言,数据库采用Mysql关系型数据库。对本系统的具体需求分析如下:药品管理功能:药品的添加:该模块将实现对供货商提供的药品基本信息的添加功能。药品基本信息包括:药品编号,药品名称、所在仓库、药品价格、生产日期、药品规格、保质时长、药品描述。药品的查询:该模块实现针对不同条件查询药品列表的功能。查询的基本信息包括:药品编号,药品名称,所在仓库。药品的更新:对药品的基本信息的更新功能。药品的删除:该模块将实现对药品基本信息的删除功能。药品的出库:就是将药品的个数减少,如果要删除的个数大于库存个数则系统应该进行提示。药品进销存详单:就是药品的进销存情况的统计。药品库存详单:就是药品库存信息情况的统计。1.2数据库概念模型设计根据实际的设计要求,本程序的数据库共有五张基本表构成,分别是:用户表、药品表,仓库表,库存信息表,进销存详细表,其中仓库表与药品表、药品表与进销存详细表为单项的一对多关系,维护端是药品表,除用户表之外其他的表都是以药品编号来相互关联,关系表E-R图如图1.1所示:生产日期

库存个数图1.1系统E-R图1.3总体方案设计库存个数药库管理信息主界面药品信息查询查看图1.2药库管理系统功能横块图在系统管理陆系统后,可:行的操作有:药品信息管理’药品药库管理信息主界面药品信息查询查看图1.2药库管理系统功能横块图在系统管理陆系统后,可:行的操作有:药品信息管理’药品理中包括:药品信息列表的查看,也可通过药品信息的条件查询得到药品的信息列表,药品信息的处理:增加,修改,删除,价格调整,药品的过期报警,药品库缺提示。还有就是该药品的库存信息的查看,同时在其中可以进行库存个数的增删操作。仓库信息管理,仓库信息管理中包括:仓库信息的查看,仓库信息的增加,修改,删除。进销存详单管理,药品进销存详单中包括:进销存信息的查询和进销存信息报表的显示。库存信息管理,库存信息管理中包括:库存信息列表查看,销库存信息报表的查看。其他参数管理,其他参数管理包括用户密码修改,用户安全退出(session设为不可用)。第2章详细设计2.1数据库逻辑模型设计本系统数据库采用MySQL数据库,数据库名称为“store”。系统的E-R图表明仓库表与药品表、药品表与进销存详单表为一对多的关系,其它表通过药品编号与药品表关联。共设计以下5个表:用户表admin、药品表medicine、库存信息表medicinestock、仓库表store、进销存信息详单表medicinedetail。各个数据表具体属性列如下所示(有下划线的为该表的主键):1)用户信息(账号,密码,用户状态)此为用户信息实体对应的关系模式。2)药品信息(药品编号,药品名称,药品价格,生产日期,药品规格,药品描述,药品对应仓库ID)此为药品信息实体对应的关系模式。3)仓库信息(观,仓库名)此为仓库信息实体对应的关系模式。4)药品库存信息(现,药品编号,库存个数)此为药品库存信息实体对应的关系模式。5)进销存详单信息(d,药品编号,药品售价,药品个数,保质日期,进销存状态,标示)此为进销存详单实体对应的关系模式。2.1.1药品表药品表如下表2.1所示:

字段名称字段类型是否为空说明idInt(11)No主键medicineNovarchar(30)No药品编号medicineNamevarchar(30)Yes约品名称medicinePricevarchar(10)Yes药品价格medicineDescribevarchar(255)Yes字段名称字段类型是否为空说明idInt(11)No主键medicineNovarchar(30)No药品编号medicineNamevarchar(30)Yes约品名称medicinePricevarchar(10)Yes药品价格medicineDescribevarchar(255)Yes药品描述medicineCreateDatvarchar(30)Yes生产日期medicineKeepTimevarchar(10)Yes保质期medicineSpecificativarchar(30)YesonmedCountInt(11)storeIdInt(11)dateStatusInt(11)药品规格Yes药品个数Yes仓库名Yes标示说明:此表用于存放供应商提供的药品的基本信息,包括药品编号、药品名称、药品价格、药品规格、药品描述、药品个数表、生产日期、保质期等属性。其中的药品编号是该表的主键,仓库名是该表的夕卜键,与仓库表关联,其他的属性都用于药品信息的描述,药品价格的单位为元。2.1.2仓库表仓库表如下表2.2所示:字段名称字段类型是否为空idInt(11)NostoreNamevarchar(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药品销售详单表字段名称字段类型是否为空说明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系统2.2系统理员端功能详细设计系统管理员端包括〃药品信息管理”,〃药品进退详单”,〃销售信息管理”,,,仓库管理,,,〃药品费用统计〃,〃其他参数管理”六个模块。前5个模块都是对药品信息的基本操作,有对药品信息录入,药品信息的更新,药品信息的删除,药品信息的查看,药品信息列表的展示,药品销售信息列表展示,药品进出库信息的展示,药品利润信息的展示。每个模块都有一个具体的表来管理,通过javaweb中的ssh框架来配置各模块的相应操作。最后一个模块算是系统的基本模块,就是对用户信息的一些操作,本系统包括的是用户密码的修改,用户的安全退出,各模块的功能以及具体的设计情况如下所述:2.2.1药品信息管理模块该模块主要的功能是为管理员提供对药品信息的一些基本操作,列表查看,药品的录入(入库),药品信息的修改,药品信息的删除。药品库存的管理功能;在用户添加完药品后,用户删除药品后,用户修改完药品信息后,页面会跳到药品信息列表。使用的是struts2.0框架(javaweb中的一个MVC框架)的控制配置文件来控制页面的跳转及参数的传递,具体配置如下:<actionname="medicine_*"class="medicineAction"method="{1}"><resultname="modify">medicineUpdate.jsp</result>〃返回结果为modify跳到medicineUpdatejsp<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(nadmin");//^取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语句,并且保证它的正确性。后来我上网查了下资料,解决7sql语句总是拼不正确的问题,就是首先定义一个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结论本次课程设计经过测试运行,达到课设预期目标,但由于我有考试的缘故,导致在仓促时间里,没能完成所有功能,例如药品调拨处理,药品流向跟踪这两大功能未能实现。而其他七大功能:药品入库处理、药品出库处理、药品调价处理、药品到期报警、药品库缺报警、库存盘点管理和库存分析管理功能已实现,完成课设的预期目标。第五章参考文献吴仁群.Java基础教程[M].清华大学出版社,2004黎连业.计算机管理信息系统设计与实施.[M].中国财政经济出版社,2011周小彤Java从入门到精通(第二版)[M]・清华大学出版社,2010⑷张志峰Java程序设计与项目实训教程[M].清华大学出版社,2012刘新.Java开发技术大全[M].清华大学出版社,2009萨师煊,王珊.数据库系统概论[M].高等教育出版社,2002清宏计算机工作室.JAVA编程技巧[M].机械工业出版社,2004朱红,司光亚.JAVAWeb编程指南[M].电子工业出版社,2001耿祥义,张跃平JAVA实用教程[M].清华大学出版社,2003赛奎春.JAVA工程应用与项目实践[M].机械工业出版社,2002附录(程序清单)<?xmlversion="1.0"encoding="UTF-8'?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""/dtds/struts-2.1.dtd"><struts><!--设置Web应用的默认编码集为UTF-8--><constantname="struts.i18n.encodingValue="utf-8'/><!--设置Web应用的默认Locale为zh_CN--><constantname="struts.localevalue="zh_CN'/><!--设置Struts2应用的国际化资源文件,多个文件中间可用逗号分隔--><constantname="struts.custom.i18n.resourcesValue="messageResource/><!--设置Struts2默认的ObjectFactory为spring--><constantname="struts.objectFactoryValue="spring'/〉<!--设置Struts2应用是否处于开发模式,通常在开发调试阶段设为true,正式上线后可设为false--><constantname="struts.devModeValue="true"/><constantname="struts.multipart.saveDirValue="C:/temp'/><constantname="struts.multipart.maxSiza"alue="9999999999/><constantname="struts.multipart.parservalue="jakarta'/><includefile="struts-default.xml></include><interceptors><interceptorname="loginedCheckClass="erceptor.LoginedCheckInterceptor'/></interceptors><global-results><resultname="tologin"type="redirect">/login.jsp</result><result>right.jsp</result></global-results><actionname="admin_*"class="adminActionmethod="{1}"><resultname="index">index.html</result><resultname="input">{1}.jsp</result><interceptor-refname="loginedCheck/><interceptor-refname="defaultStack/></action><!--仓库信息action--><actionname="store_*"class="storeActionmethod="{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="medicineActionmethod="{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="toMedicineListtype="redirectAction><paramname="actionName>medicine_medicineList</param><paramname="namespace">/^dmin</param></result><resultname="success'type="stream"><paramname="contentType>application/vnd.ms-excel</param><paramname="inputName">excelStream</param><paramname="contentDisposition>attachment;filename="${fileName}.Xs"</param><paramname="bufferSize">1024</param></result><interceptor-refname="loginedCheck/><interceptor-refname="defaultStack/></action></package></struts><?xmlversion="1.0"encoding="UTF-8'?><beansxmlns="http:///xml/ns/javaee"xmlns:xsi="

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论