




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
健康药店管理系统的设计与实现 毕 业 设 计 中 文 摘 要 随着医药行业的发展,广大农村的中小型药店也逐渐兴起,但现代化科学技术使用相对较少的这些农村药店存在诸多经营困难,如药品信息的记录,为了解决这些问题而设计了一个健康药店管理系统。系统实现的功能为药店中不同部门的员工提供相关服务,采购人员能够查询库存人员制定的采购计划并采购药品,以及记录药品、代理商信息;销售人员可以查询药品信息、销售药品并记录顾客的消费信息;库存人员主要是制定采购计划和核实药品的入库情况;财务收支统计和药品的订价是财务人员的主要工 作。管理员管理药店的全部人员,并可使用所有员工的工作系统,所有部门的员工相互协作共同完成药店的经营工作。 本系统 是采 用 Java 编程 语言, 并结合 Microsoft SQL Server 2008 数据库开发的一套 药店管理系统,该系统基于 C/S 体系结构开发 , 它 为 软件的运行提供稳定的平台。该药店管理系统能为广大农村药店的健康发展和农村人们的方便购买药品提供有效的帮助。 关键词 药店管理系统 中小型药店 药品信息 C/S 体系结构 毕 业 设 计 外 文 摘 要 Title Design and Development of the Management System of the Health Drug Shop Abstract With the development of medicine industry, the middle and small drug shop in countryside are being prosperous, but those drug shops, using less modern science and technology, have many problems in running such as the record of drug information. In order to solve those problems, the management system of the health drug shop is designed. The function finished by the system offer reluctant service to worker in different department. Procurement staff can search the plan made by worker in reservation department, purchase drug and record the information of drug and agency; Salesman can search drug information, sell drugs and store customers expenditure information; the main work of worker in inventory department is to make purchasing plan and check if the drug is stored into inventory or not; incoming and expensing statistics and setting the drug sale price is finished by finance departments worker; the administer manage all the worker information and can use the system used by all workers. The workers in all departments coordinate to finish the work of the drug shop in running. Combined the database, Microsoft SQL Server 2008, this system is developed by Java programming language; It is based on C/S architecture which provides stable running platform for the software. The management system of drug shop can offer effective help for the health development of drug shop in the countryside and provide convenience for people in village. Key words Management System of the Health Drug Shop Middle and Small Drug Shop Drug Information C/S Architecture 本科毕业设计 第 I 页 共页 目 录 1 引言 . 1 1.1 开发背景 . 1 1.2 农村药店的现状 . 1 1.3 课题研究的目的和意义 . 2 1.4 课题内容和论文章节简介 . 2 2 使用工具及相关知识 . 3 2.1 Java 语言 . 3 2.2 SQL Server 数据库 . 4 2.3 JDBC 数据库链接技术 . 4 3 系统需求分析 . 5 3.1 系统功能分析 . 5 3.2 业务流程分析 . 7 3.3 运行环境要求 . 8 4 系统总体设计 . 9 4.1 系统模块介绍 . 9 4.2 管理员模块 . 10 4.3 库存管理模块 . 11 4.4 采购管理模块 . 12 4.5 财务管理模块 . 12 4.6 销售管理模块 . 13 5 数据库设计 . 14 5.1 需求分析 . 14 5.2 概念结构设计 . 14 5.3 逻辑结构设计 . 16 6 详细设计 . 24 本科毕业设计 第 II 页 共页 6.1 员工身份验证模块 . 25 6.2 库存功能模块 . 26 6.3 采购功能模块 . 29 6.4 销售功能模块 . 31 6.5 财务功能模块 . 34 6.6 管理员功能模块 . 37 6.7 其它辅助功能模块 . 38 结 论 . 39 致 谢 . 40 参考文献 . 41 本 科 毕 业 设 计 第 1 页 共 42 页 1 引言 1.1 开发 背景 在农村来说,最基本的医疗保障体系当为农村百姓的日常购买药品,买到放心、有效、便宜的药品对农民来说是最大的实惠。因此,改善、提高、规范农村中小药店是便民利民最实在的事,也是响应国家扶持农村发展的政策。农村大多数药店存在着许多问题,如药店中药品的药品分类不十分明确、销售药品没有记录、销售药品的价格常以店主的记忆为依据,从而常常药品价格偏高。 导致上述常见问题的原因多是药店经营中所用到的信息繁琐并且还经常变化,若是对于刚刚开始这样工作的人来说,正确的销售药品就是一件困难的事。为了解决这种实际中的问题,本系统 设计了一种健康药店管理系统,从而使药店经营中常用到的信息能方便、快捷的处理。 1.2 农村药店的现状 城镇药店分布不均衡,相对比较繁华地段出现许多药店在一起经营的状况,但在郊区和农村内部经营的药店又相对较少,多数是农村的乡村医生在家经营。广大偏远的贫困农村地区这种情况更为严重。 正常营业的药店规模相对较小。目前农村大多数经营的药店营业面积在一百平米以下,对药店经营人员的医药学知识要求不高和其它专技能也没有健全的规范。这就造成一些缺乏药师必要培训的人员也进入到这个行业,再加上店为了节省经费开支,时有药师和其它店 员相互代职或脱岗现象发生,经营的药店对顾客的购药服务质量相对较低,多数情况是医生开出药品清单,病人到药店买药。这种现状远不能满足农村百姓的购药咨询服务需要 1。 经营的药店盈利状况参差不齐,为了获得更多的利润和继续生存下去,药店之间竞争通常十分激烈,在保证药品质量有效的同时,通常药店使用的促销手段是价格战,虽然药品的单位售价降低,但是药店会以多销售为手段以保证总体的盈利情况。随着药品监管部门对药店经营管理力度加大,种种法律法规的日渐完善。这无疑使药店花费更多的人力、物力与财力,在一定程度上其成本又会提高, 追求利润永远是企业发展最大的动力。在这种情况下,一些药店会打法律的擦边球,一些违法、违规经营因而出现,严重影响药店的持续发展 2。 本 科 毕 业 设 计 第 2 页 共 42 页 1.3 课题研究的目的和意义 1.3.1 课题研究的目的 近些年来生物科学发展迅速,它直接带动了医药行业的发展,各地的药品制造业和农村的药店如雨后春笋般兴起。但在科学技术和制度管理相对薄弱的农村来说,农村的各种中小型药店也存在诸多问题,如药品的管理、销售信息的统计、财务收支的结算等等。为了使这些药店方便、快捷地解决这些问题,开发一套适合中小型药店使用的管理系统是本体课题的意图所 在。 1.3.2 课题研究的意义 借助计算机技术去完善药店的管理和提高自身的工作效率 ,以赢得市场竞争的胜利。因而药店管理信息系统对于农村中小型药店适应日益庞大的药店具有重要意义。能够买到放心实惠便宜的药品是百姓生活中现实难题。能够从自己所购药品消费中得到一定的回报也是人之常情。该系统为百姓能买到所需要的药品和依据一直相对稳定的药品价格提供了可靠的保证。总之,该系充为药店企业和顾客双方均提供了实际的利益和效率。 1.4 课题 内容 和 论文章节简介 1.4.1 课题研究 内容 本系统主要是为了方便中小型药店的经营。它 主要是面向五类不同身份的用户,五类用户主要功能分别是:库存部门人员可以依据销售情况制订采购计划和核实药品入库情况;采购部门人员可以查询采购单并采购药品和添加新药品;财务部门人员对药品进行订价和统计收支情况;销售人员销售药品并将消费情况记录到顾客信息中;管理员统领各用户中的重要功能和人员管理。本系统使用的 Java 语言编写,开发工具是 NetBeans,底层数据库是 SQL Server 2008 来存储数据,使用的数据库链接方式是 JDBC 方式。 1.4.2 论文章节简介 论文共分为六个章节,第一章介绍当前药店现状 、背景和本系统开发意义;第二章介绍了实现系统的语言和数据库的知识;第三章主要是依据现实需求分析了本系统将要完成的功能;第四章将要完成的功能进行模块划分并说明其主要任务;第五章是数据库的设计与实现过程,同时展示了其相关代码;第六章是整个系统的实现细节说明和部分最终的实现效果。 本 科 毕 业 设 计 第 3 页 共 42 页 2 使用工具及相关知识 本系统前台采用 的是 JAVA 语言进行程序代码开发的,后台采用 数据库服务器 SQL Server2008 完成对系统数据的管理。 以下将对 系统的开发工具和主要 技术作一个简单的介绍 。 2.1 Java 语言 Java 语言是 当今计算机编程语言中十分流行的一种语言,它具有强大的优势。它的面向对像、跨平台、分布应用等给编程人员带来新的理念,它产生的由最初的网页中单纯的静态向动态转变的巨大变化。 Java 编写的小应用程序不仅能嵌入网页多媒体也能独立应用于大中型的应用程序中。同时 Java 语言在全球的云计算机的环境下,它展示出其显著的优势和广阔的前景, Java 语言有如下几个重要特点,其独特性为其在诸多计算机语中提供了强大的生命力 7。 1)面向对象 ,面向对像解决了很多传统语言所不能解决的问题,包括软件的开发规模扩大、升级加快、维护量增 大等。并且这也有助于与人类的思维相符合, 现实世界就是各种对像的实体,且各 对象之间通过消息相互作用。 转化到语言中就是对像的方法用来完成 10。 2)可移植性 ,程序 在 一台计算机 系统上经过一次编译后可以移植到 其它的 Java 环境 解释执行,只 须 简单的粘贴和复制就 能完成 , 大大降低了开发、维护和管理的开销,且 不 会 影响程序的 最终 效果 3) 有丰富的类库 , Java 语言包含了基本的字符串 、数学函数、日期处理、输入 /输出 I/O 以及网络包等多种处理包 10。第三方还有许多 Java 的插件工具包,如多媒体框架的 JMF 和应用于搜索引 擎的 Lucene 开发工具包。 4)并发 机制 , Java 支持多线程技术,就是多个线程并发运行,也就是说允许同时做两件或两件以上的事情,这就使程序能充分地应用计算机硬件资源并且提高程序的运行效率,这种语言级别的多线程支持使开发有多线程的程序变得更加简单和容易 10。 5)支持可视化图形界面 ,虽然 Java 语言开发包中提供了图形化开发的界面,但这一部分并不是它的优势之所在, Java 以处理速度为优势,而图形化用户界面的加载运行显然耗费更多资源,而影响速度。 本 科 毕 业 设 计 第 4 页 共 42 页 2.2 SQL Server 数据库 SQL Server 2008 是一款微软出产的面向企业级应用的关系数据库产品,在各种软件开发的数据库使用中占有重要的一席之地。 SQL Server 2008 在原有的 SQL Server 2005架构上做了进一步的更改,它使用了全新的关系引擎和查询引擎设并引入了 OLAP 和ETL,这标志着它进入了商务智能领域。 SQL Server 2008 功能模块从多,但大体上可分为两个大模块:数据库模块和商务智能模块。数据库模块有数据库模块以及以其为核心的 Service Broker、复制、全文搜索功能组件;商务智能模块由集成服务、分析服务、报表 服务三大部分组成 11。 SQL Server 2008 数据库自带了四个系数据库,它们各自起着不同的角色。这个四个数据库分别是 Master 数据库、 Model 数据库、 Msdb 数据库、 Tempdb 数据库 11。 Master数据库由系统表组成,这些系统表跟踪用户安装数据库和创建的新的数据库,它记录了其它数据库的基本信息,对整个系统十分重要,如果 Master 数据库损坏,那么 SQL Server将无法启动。 Model 是一个模板数据库,用户创建的新的数据库全部都以它为基础数据库,如果修改此数据库,那么用户新创建的数 据库将会受到影响,所以用户最好不要轻易修改它,同时它还控制用户创建数据库的权限。 Msdb 是为了提供代理服务的数据库,它提供了队列和可靠信息传递。 Tempdb 数据库是为了作为一个临时工作区,它的主要特点就是当数据库再次启动时它里面的内容将不再存在,它的大小对数据库的性能优化十分重要。 2.3 JDBC 数据库链接技术 JDBC(Java Data Base Connectivity)是 Sun 公司制定的 Java 数据库连接技术的简称。它为常用的数据库提供完善的联接技术,它对数据库的操作十分详细,编程人员可在容易地通 过此种链接来操作数据库。 JDBC 现在可以连接的数据库除了 SQL 之外还包括:Oracle、 Sybase、 Aceess 以及 Paradox 等。 JDBC 是一个十分独特的动态连接方式,它使得程序变得模块化。使用 JDBC 来完成对数据库的操作过程主要包括以下四个部分: Java的应用程序、 JDBC 驱动器管理器、驱动器和数据源。 JDBC 是个 低级 的程序 接口,也就是说 它可以 直接调用 SQL 命令。 类似于在数据库管理系统的查询分析器中执行,但它不需要加加载那个界面,因此, 在这方面它的 执行效率很高 , 这样就使得系统和整体运行速度 得到提升 8。 本 科 毕 业 设 计 第 5 页 共 42 页 3 系统 需求分析 需求分析是 对 软件可行性分析 再一次进行分解与 细化, 尝试 各种 可以解决问题的方法 。 在 软件定义 中需求分析是它的最后阶段 , 它要 确定 整个 系统必须 实现的功能 , 换句话说, 就是对目标系统 做出更加详尽和准确的 要求 6。 依据现实中经营的药店,该系统应该提供常规的进、销、存基本功能,因为经营药店的目的是为了盈利,财务的统计也是不可缺少的一个部分。为此,系统中应该完成:与销售相关的功能、与进药采购相关的功能、与药品库存相关的功能、与财务相关的功能 7。销售相关功能中至少应完成对药品销售信息的记 录,销售情况的财务统计,以及现实中对于会员或是非会员身份的记录和多次采购药品消费的记录。完成药品的采购是采购功能中必须完成的部分,对于采购中加入新的药品信息也是一个现实中常用到的功能。库存应能完成对于采购的药品进行入库管理以及统计药品的采购支出,依据库存中药品的数量和销售药品的数量制定相应的采购计划也应是库存部门所要完成的功能。统计整个药店的收支情况是财务的基本工作,系统应该能简化实际工作中繁琐的事情,对于销售药品的价格也应该是财务部来确定,从而保证药店的营利。 考虑到现实中药店的规模有中、小型大小不一,相 对稍大的药店可能还会对员工分属到不同的部门,每个员工相对完成自己部门内的工作,不同部门之间的联系相对较小。所以系统也就满足这一基本的现实需求,应该对不同部门的员工进行管理,记录员工的基本信息,对员工的部门信息的记录,以及不同部门的员工能进入到自己部门的界面。 综上所述,系统应该完成财务软件中基本的进、销、存以及财务统计的相关工作,依据部门需求还应该完成员工信息的管理。 3.1 系统功能分析 该健康药店管理系统主要分为五类不同身份的员工和四大藕合性较小的不同功能模块。 其中五类不同的员工作身份分别为:采购部门员 工、销售部门员工、库存部门员工、财务部门员工和系统的管理员,也就是药店的拥有者。前四种员工可以进入到彼此操作不相同的界面,进行药店运营的不同工作,管理员可以管理员工的基本信息,包括员工进入系统的用户名和密码,从面他可以进入到不同员工的界面中去。 本 科 毕 业 设 计 第 6 页 共 42 页 四个不同的模块为销售模块、采购模块、库存模块、财务模块,还有一个相对比较集成的是管理员模块,它集成了管理员所关心的各部门最重要的工作和信息查询。各个模块人功能介绍如下。 a) 销售模块 1)顾客信息管理:来药店来买药的顾客如若愿意加入为药店的会员 3则可记录顾客的 基本信息,从而可以记录每次购买药品的消费金额,并折算成相应的积分,以便宜对药店的促销、招揽顾客提供一定的依据。 2)药品销售:该部分应该完成对销售药品时对药品销售价格的查询,并且能记录销售药品的信息,从而使对收入的统计更加方便,将购药的金额记录到会员顾客的名下,并打印相关的发票信息也是此部分要完成的功能。 3)销售统计:完成当天销售信息的收入的统计,以及当前月收入信息的统计, 4)销售汇账:把当天或月销售信息统计的收入情况形成相关的纸质文档,以便对店长的汇报和方便查阅。 b) 采购模块 1)药品记录:记录采 购过程中所遇到的新的药品,将其记录到系统中,以便在库存部门制定采购计划中可以参考,查阅当前系统中的药品信息、修改、删除某个药品的信息也是它的基本操作。 2)代理商管理:记录所采购的药品是在哪位代理商手里购买的,从而可以采购时方便快捷的采购到需要的药品,查阅、修改、删除其信息也是其基本功能。 3)采购查询:查看库存部门制定的采购计划,依据此需求来采购药品,它也应完成采购过程中采购药品价格变动的修改,和采购数量的更改。 4)采购单汇总:完成对所采购的药品支出情况进行统计。 c) 库存模块 1)药品信息查询:制定 采购计划时查看可能会用到的药品的基本信息。从而做出正确的决策。 2) 销售信息查询:参考药品的月销售量从而更合理的决定某种药品所要采购的数量,月销售信息的查询为采购数量的确定提供一定的参考数量。 3)采购计划制定:根据已经销售过的药品记录和对销售信息不确的信息制定相应 本 科 毕 业 设 计 第 7 页 共 42 页 的采购计划,并完成采购单的统计打印功能。对采购单的修改、查看、删除也是这一部分的基本功能。 4)入库核实:对已经采购来的药品进行入库登记,并统计采购药品的支出费用。 d) 财务模块 1)收支查询:这一部分完成系统的全部收入和支出情况的统计,包 括完成销售药品的收入统计,采购支出的统计,员工薪资的支出统计,最终还有一个对所有收支的总全统计,并计算出药店的纯收入。并且应可以打印出来相应的文档,以便可以方便向店长汇账。 2) 销售药品价格确定:对于采购来的药品,销售、库存都没有对其销售价格进行确定的权限,财务部门的员工参考药品的采购价格来确定药品的销售价格,从而保证药店的盈利。 3)参数确定:根据药店的收支情况,财务部门可以对药品销售时对顾客的打折情况进行更改,以及消费金额到积分数量的转换,从为了促销而降低其转换比率或是将其提高。对于销售信息不明确的信 息药品的采购量也可以依据一定的收入信息和销售情况修改采购量。 e) 管理员模块 1)员工管理:对各个部门的员工进行管理,对于新员工信息的加入,以及辞职员工信息的删除。 2) 各模块集成:对上述四个模块的部分数据显示集成显示到管理员界面中,当然,只加入管理员最关心的数据信息,对于不重要的操作管理员可以查询员身份信息进入不同部门的界面进行了解。 3.2 业务流程分析 业务流程分析的主要目的在于分析各个模块之间数据处理的过程,但其中略去系统开发过程中不太重要的细枝末节,从而将数据处理的逻辑过程形成清晰的脉络。同时从现有的业务处理过程中找到现有的不足,并且加以改正以使系统更加稳定强壮 6。 本系统的业务流程就是四个主体模块中完成整个药店经营的全部过程,这四个主模块也是四个小系统,主体处理过程为:在库存系统中依据销售量和药品信息制定合理的药品采购计划,采购系统中可以查询这个制定的计划,并且依此而采购,之后库存部门对采购的药品进行入库登记,财务系统对采购过的药品依据采购价格进行药品订价,销 本 科 毕 业 设 计 第 8 页 共 42 页 售系统最后向顾客销售药品。财务系统还有一个与各模块有都有藕和关系的功能,它可以统计各部门的收支情况整个系统所完成业务先后的时序图如图 3.1 所示。 用户 库存系统 采购系统 财务系统 销售系统1 : 登录 ()2 : 制订采购计划 ()3 : 登录 ()4 : 查询采购计划 ()5 : 获得采购计划 ()6 : 登录 ()7 : 提供采购的药品 ()8 : 药品入库核实 ()9 : 登录 ()10 : 查询入库的药品信息 ()11 : 获得药品信息 ()12 : 确定与修改药品售价 ()13 : 查询药品信息 ()14 : 获得药品信息 ()15 : 销售药品 ()16 : 提供采购信息 ()17 : 提供销售信息 ()18 : 统计财务收支 () 图 3.1 药店管理系统整体业务时序图 3.3 运行环境要求 此系统是基于 客户端 /服务器 ( C/S 模式 )的系统,后台数据库采用 SQL Server,前台 使用 Java 语言 开发 。 a)软件环境 操作系统必须是 Windows 2000 Professional/Server, Windows XP Professional、Windows.NET Server 或以上版本;数据库应使用 SQL Server 2008。 b)硬件环境 内存至少为 128MHZ; CPU 要求为 Intel Pentium 800MHZ 或以上更高频率的 CPU;硬盘容量要求为 40G 以上。 本 科 毕 业 设 计 第 9 页 共 42 页 4 系统总体设计 4.1 系统模块介绍 本系统是使用 Java 语言开发的稳定完善的药店管理系统。系统中主要设置了四个相对独立但又彼此相互关联的模块,这四个模块就是典型的进、销、存和财务统计模块,还有一个更加独立的系统管理员模块,它处理整个系统中户的信息,具有授予和剥夺用户进入系统的权限,并且可以进入到不同的模块和查阅任意模块中的功能。各个模块之间在界面里的操作相互独立,彼此之间的主体功能不同,但是各个模块的操作共同完成整个药店的经营过程,共同操作底层的数 据库中的数据信息,本系统的模块设置如图 4.1所示。 图 4.1 健康药店管理系统 功能模块图 从实现的主体功能模块上分为分上面几个部分,各个模块间又使用了相似的操作界面来实现各模块的具体效果,但各模块界面内部加入的数据显示和操作功能各自有所不同。在底层数据库和最上层显示界面之间还有两层数据处理的类文件,这些文件可分为三部分,一部分是调用、操作数据库数据的 Java 类文件,它们在系统项目中共同存入在同一个数据库操作包中,在界面中调用这个包中的类文件,使代码的 层次更加分明;再一部分是处理、加工在已经在数据库中调用出来的数据的类文件,这些文件控制在界面上显示的数据,并把用户处理过的数据再次存放到数据库中。第三部分是为各个模块方便处理而设置实体 Bean 文件和其它都会用到的辅助类,实体 Bean 加大了数据处理的粒度,实体对象的信息传递更加容易,辅助类是各个模块中使用到了相关类,这些类不分属于哪个模块,它们的层次关系如图 4.2 所示。 健康药店管理系统 系统管理员 库存管理 采购管理 财务管理 销售管理 本 科 毕 业 设 计 第 10 页 共 42 页 图 4.2 药店管理业务逻辑层次图 4.2 管理员模块 系统管理员模块中涉及了其它四个 模块中的数据显示和部分操作功能,但是这些功能和查询显示的数据仅是管理员所最关心的内容,并非其它各模块所有功能的合成,管理员可以通过系统获得所有部门员工进入系统的口令,从而以不同的身份进入到不同的模块界面中以了解各部门中的全部信息,各模块中相互重复数据显示和操作则在管理员界面中只出现一次。管理员模块中还有一个十分主要的功能,就是对新员工的信息加入和一系列的修改删除,这些都是对员工能否进入系统做出的相关权限设置,这一部分是其它模块中所没有的,其它模块只有进入系统的员工只有显示和修改自己的各个信息,但不能查看其它 员工的信息。从系统的使用权限层次上来说,管理员在顶层,它统领其它部门的全部人员,有分配员工部门和使用该系统的权力,也是取消员工使用系统的权限,这是为了应对实际中,招聘新员工和员工辞职而设置的实际需求。该模块功能如图4.3 所示。 数据流逻辑处理 数据库 数据库存储文件 链接、释放 查询 添加数据 查询修改 查询删除 销售逻辑 采购逻辑 库存逻辑 财务逻辑 数据库数据操作 辅助实体类文件、 公共类文件 各模块具体应用 销售模块 库存模块 采购模块 财务模块 管理员模块 本 科 毕 业 设 计 第 11 页 共 42 页 图 4.3 系统管理员模块图 4.3 库存管理模块 库存模块主体功能是为了管理库存中药品的存放并且依据所缺少的药品和某种药品的销售量来制定采购计划。它的辅助还涉及了药品基本 信息和销售信息的查询,以辅助制定采购计划。这个模块的重点功能和逻辑相对较复杂的是采购计划的制定和采购部门采购药品后进行入库核实的两个主体功能的实现,这也是这个模块存在的主要意义之所在,该模块功能模块图如图 4.4 所示。 图 4.4 库存管理模块图 库存模块 药品信息 销售信息 采购计划 入库核对 查询 日信息查询 月信息查询 计划修改 制定计划 取消计划 核对查询 入库登记 计划查询 清空采购表 系统管理员模块 财务部 员工管理 销售部 采购部 信息查询 信息添加 总体查询 月销售信息 月销售报账 供应商查询 采购计划 采购单 库存部 入库核实 销售收入 采购支出 薪资支出 财务汇总 添加采购药品 本 科 毕 业 设 计 第 12 页 共 42 页 4.4 采购管理模块 采购模块大体上分为三个主体功能,它包括记录采购过程中所遇到的新的药品和记录某个药品代理商信息,以及对它们各自信息的修改和删除,这两部分可以说是对整个系统添加必要的处理信息;别一个功能是查询 采购计划,并依据现实情况对采购计划做出实际的修改,这种允许采购人员对采购单进行修改的设置为了应对实际的需要,因为在现实中的药品价格可能有涨落,但这种信息只有采购人员才能最先知道,在这部分做出修改采购计划中的采购量和药品采购价格比较合理;最后一个小功能就是对采购药品支出的汇总,它主要是完成采购药品的统计。该模块的功能模块图 如图 4.5 所示。 图 4.5 采购模块图 4.5 财务管理模块 财务管理模块主要分为三个大的功能部分,一个功能是对财务收支的统计,包括销售收入的查询,采购支出的查询,员工薪次的修改与查询,和最终的整体汇总出药店的盈利情况;别一个功能就是对所采购药品进行销售价格的确定,以及对目前正在销售的药品价格进行修改,从而确保每种药品的盈利;另一功能就是系统中一些参数的设定功能,如会员打折比率设定,消费金额的积分转换比率,这一些参数是其它模块中所使用到的信息,这些信息影响到药店的整体收益情况,财务人员根据药店的财务统计和实际要求有对其进行修改的权根。该模块的功能模块图如图 4.6 所示。 采购模块 采购查询 采购单汇总 供应商信息 药品信息 查询 具体查询 修改 汇总打印 添加 修改 删除 查询 查询 添加 修改 删除 本 科 毕 业 设 计 第 13 页 共 42 页 图 4.6 财务管理模块图 4.6 销售管理模块 销售模块主要分为四小的功能部分,一部分是对顾客信息的添加与修改,从而可以在将药品销售给会员顾客的同时记录顾客的消费积分和消费金额;另一部分是药品的销售功能,这是销售模块中的主体功能,它能将药品信息买给指定顾客和记录销售的药品信息,为统计销售的收入情况提供统计数据,剩下的两部分功能是对销售收入的统计和对财务汇账,这两部分是销售人员对当前日和月销售的药品和每种药品的盈利情况的统计,使对店长的财务汇报更加方便。该模块的功能模块图如 图 4.7所示。 图 4.7 销售模块功能图 收支查询 销售定价 总收支查询 薪资调整 薪资查询 采购支出 销售收入 参数设定 销售模块 销售统计 销售汇账 药品销售 顾客信息 日销售统计 月销售统计 月汇账 查询 添加 总体查询 销售查询 日汇账 财务模块 打折率 积分比 采购量 价格查询 价格调整 本 科 毕 业 设 计 第 14 页 共 42 页 5 数据库设计 5.1 需求分析 需求分析就是确定开发的应用系统所使用的数据库结构,收集和分析用户对数据库的要求,了解用户要什么样的数据库,对用户需求分析的描述是数据库概念设计的基础,数据库设计的起始就是需求分析,用户的真实需求能否得到满足,将直接关系到数据库的后续开发,进而影响整个系统的再一次扩展和升级 12。 从用户需求方面来说。系统数据库应该能够为存储不同员工实体的信息,且应该能够对其信息进行处理操作;常规财务软件进、销、存和财务统计 也所用到的信息也应该由精通数据库的开发人员来进行合理的设计,并在前台界面中显示出来,这一部是该系统中核心的数据;由于实际经营中还有对顾客信息的记录,以区分会员和非会员,以进行促销和招揽顾客,顾客的信息也应该能加入到数据库中,并可以将顾客每次消费的金额记录到数据库中,以便在实惠顾客时做出相应的依据。采购部门使要联系的代理商信息也该加入到数据库中,这样可以方便采购人员方便的找到所需要品是哪位代理商所代理的,从而提高工作效率。 从系统功能方面来说。系统要能区分不同部门的员工信息,所以员工应该作为一个实体在数据库中 存在一张表,以满足对员工信息的处理;该系统是药店管理系统,系统中最重要的实体类型数据就是药品实体的数据,因此,药品实体应该作为一个单独的一个表来存储药店中的药品信息;从财务软件的进、销、存和财务统计来说,数据库中还应该有与采购与销售相对应的数据库表,以存储相应的数据。所要存储的主体数据应该由前面所提到的表来存储,而其它功能模块所需要显示的数据可以由表格形成相应的视图来整合完成,既可以满足相应的功能需求,也俱有一定的安全性。 从上述两方面来来说,数据库应该在能存储用户所要存储数据的基础上依据具体的系统设计做出 相应的数据库表或者是视图。 5.2 概念结构设计 概念结构设计的目的是获取数据库的概念模型,将现实世界中的人或个体信息转化到信息世界中,这种转化只关心与系统相关的数据信息,从而形成一组描述现实世界中的实体及实体间联系的概念。概念模型独立于机器,比数据模型更抽象、更稳定。此模型是现实世界到信息世界的第一层抽象,是数据库设计的工具,也是数据库设计人员和 本 科 毕 业 设 计 第 15 页 共 42 页 用户进行交流的语言。它常使用的模型是 E-R14模型来表现数据信息与实体对象之间的关系 13。 在本系统的数据库中涉及到许多的表和视图,但相对独立的实体有四个, 它们是药品实体对象、顾客实体对像、代理商实体对像、员工实体对像。这四个实体彼此之间有一定的操作关系并且系到实体信息在数据库中的存储,它们各自形成一个自己独立的表来存储其数据。它们的整体 E-R 模型如图 5.1 所示。 图 5.1 实体对像 E-R 图 药品实体就是记录每种药品中与药店经营最相关的信息,这些信息是采购、库存、销售中都会用到信息,而与系统关系较小数据则不进行存储,如药品的功能、服用量、配方等。与药品相关的是经营此药品的代理商,而代理商又是一个相对独立 的实体,但代理商与包含的信息只是为了与采购人员进行与代理商联系的方便,代理实体记录的信息是为了采购人员能够方便的联系代理商来采购所需要的药品,而不关心代理商自身的其它信息。 m m n n m n 药品 类型 名称 编号 库存量 售价 采购价 生产厂家 代理商编号 代理商 编号 名称 地址 电话 邮件 代理 姓名 购买 类型 顾客 编号 电话 消费金额 积分 员工 姓名 性别 年龄 地址 工资 用户名 编号 部门 密码 电话 整理、 销售 本 科 毕 业 设 计 第 16 页 共 42 页 顾客实体在系统中只是为了记录会员顾客多次在药店消费的金额和对应的积分数量,存储蓄这些信息的目的一方面是作为回馈顾客的依据,另一面也是为了药品的促销,赢得更多的回头客,提高药店的盈利。至于顾客的地址、年龄等与药店和整个系统的关系很小,不是系统关心的内容,所系统中所用到的顾客的信息较少。 员工实体是系统的操作人员,此实体记录药店中所有部门 的员工信息,在详细信息叫记录其与药店工作相关的信息和其薪资水平,在员工记录中还加入了员工进入该系统的用户名和密码,虽然这项与其它信息不相关,但它不足以构成一个新表,且十分独立,所以将其归类到员工实体中比较合理, 5.3 逻辑结构设计 逻辑结构设计的任务就是把概念结构阶段设计好的基本 E-R 图转换为与 SQL 2008数据库管理系统 DBMS 所支持的数据模型相符的逻辑结构。除了将 E-R 图转换为相应的关系型数据库所对应的表,此阶段也应设计出所要使用到的所的有存储数的表和所使用到的视图,这些表格可能不是实体类型,但确是 存储数据所不可缺少的一部分 13。 a)由上节概念结构设计得出的药品与代理商 E-R 图可以转换成相应的关系模式药品表所对应的字段信息如表 5.1 所示。 表 5.1 药品信息表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系统自动编号 false dnum varchar 10 字节 药品编码 false dname Varchar 50 字节 药品名称 false dtype Varchar 50 字节 药品类别 false amount int 4 字节 库存量 true salePrice int 4 字节 销售价格 true purchasePrice int 4 字节 进货价格 false Manufactory Varchar 50 字节 生产厂家 false anum Varchar 10 字节 代理商编号 false 虽然此药品信息表只是记录药品的信息,但它与代理商有着药品被代理的隐含信息,此表中无法显视出来,它需要与代理商形成视图来显示此信息,若要能正确的形成 本 科 毕 业 设 计 第 17 页 共 42 页 此视图的信息,就要对此表进行参照完整性约束,在数据库中使用的是触发器来触发在向表中加入数据时也向两表的关系表中加 入与之相应的字段数据,以及删除某种药品时也同时删除关系表中所对应的数据项。该表所使用的两个触发器 13的代码如下: create trigger Insert_SynWithDrugWithAgency on drug for insert as insert into drugWithagency select dnum,anum from inserted create trigger Delete_SynWithDrugWithAgency on drug after delete as delete from drugWithagency where dnum =(select dnum from deleted) and anum=(select anum from deleted ) 通过上述两个触发器的完整性约束可以保证视图显示正确的信息。 代理商实体在数据库表中的字段设计如表 5.2 所示。 表 5.2 代理商信息表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系统自动编号 false anum Varchar 10 字节 代理商编号 false aname varchar 50 字节 代理商名称 false address varchar 50 字节 代理商地址 true atelephone char 11 字节 代理商电话 false aemail varchar 20 字节 电子邮件 true 药品和代理商之间的关系表是为了形成视图查询相对应药品的代理商信息时可以形成视图,它可以避免在形成视图时两表链接时产生的错误的信息。此表在数据库中表字段设置如表 5.3 所示。 表 5.3 药品与代理商联合表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系统自动编号 false dnum varchar 10 字节 药品编码 true anum Varchar 10 字节 代理商编号 true b) 顾客信息表与员工信息表 顾客信息表比较简单,虽然是顾客可以购买多种药品,但系统只记录该顾客的消费金额和积分总数,购买何种药品和数量并不关心。所以顾客信息表与药品实体并无实质 的关联,不必设计二者关系模型表。顾客实体在数据库表中的字段设置如表 5.4 所示。 本 科 毕 业 设 计 第 18 页 共 42 页 表 5.4 顾客信息表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系 统自动编号 False Cnum Varchar 20 字节 顾客编号 False Cname Varchar 20 字节 顾客姓名 True Ctype Varchar 20 字节 顾客类型 False Ctelephone Varchar 20 字节 顾客电话 True ctotalScore Int 4 字节 顾客总积分 False ctotalCrash Int 4 字节 顾客总现金 false 员工实体与顾客实体相似,员工表包含了员工在药店的全部信息和一定的个人信息。这些信息用于部门之间了解员工 的情况和管理员对不同员工的管理。员工表在整个系统中使用较少,只是管理员对员工进行管理和财务对员工的薪资进行查询。员工实体在数据库表中字段设置如表 5.5 所示。 表 5.5 员工信息表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系统自动编号 false WorkerNum Varchar 10 字节 员工编号 false Name Varchar 20 字节 姓名 false Age int 4 字节 年龄 true Gender Varchar 10 字节 性别 false userType Varchar 20 字节 所属部门 false Tel Varchar 20 字节 电话 false Address Varchar 20 字节 住址 true Salary Int 4 字节 薪资 ture UserName Varchar 20 字节 用户名 false Password Varchar 20 字节 密码 false c) 药品采购表 药品采购表是由库存部门的员工加入相应的数据,再由采购部门的员工查询进行依此来采购。药品采购表的最大特点就是信息冗余小,它只存入了要采购的药 品编号、采购量、采购过程中是否有变化的记录项和该采购的药品是否入库。如果仅是这些信息任何人都很难看出是采购什么时候药和到哪里去采购,也正是这一点也起到数据安全性的 本 科 毕 业 设 计 第 19 页 共 42 页 提高。在数据库中又创建了依药品信息、代理商信息和采购表信息的联系视图显示,此视图可以完整的显示所有的信息。从而在前台显示界面中可以方便的查询相应的信息。该表在数据库中字段设置如表 5.6 所示。 表 5.6 采购信息表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系统自动编号 False Dnum Varchar 10 字节 药 品的编号 False purchaseAmount Int 4 字节 采购数量 False Change Varchar 10 字节 计划变动与否 False Store Varchar 10 字节 是否加入库存 False 使用该表的两类员工主要是库存部门的员和采购部的员工,采购部员工若是在实际采购过程中发现药品人价格有变动,或是因此而在采购过程中增加或减少了采购量都有可能发生,所依据以上所描述的情况该表使用了存储过程进行上两种情况的处理,这样一方面可以提高数据操作的速度也可以解决两种情况的数据更改,创 建该存储过程 14代码如下: create proc updatePurchasePlan dnum varchar(10),purchasePrice int,purchaseAmount int as update drug set purchasePrice=purchasePrice where dnum=dnum update purchasePlan set purchaseAmount=purchaseAmount, change=是 where dnum=dnum 使用该表的还有库存部门员,当采购的药品已经可以加入到库存中时,库存部门的员工应该就此核对药品入库的情况并且修改库存中药品的数量,并且也应系统程序中防止数据的重复加入到系统数据库中去,综上所述,库存部门要修改药品的入库情况和药品的库存情况,两步操作若是分开分别修改两个表的数据会降低数据库效率,虽然在程序代码中可以完成同样的工作,并且,这种数据修改原子性也将会因程序异常而无法保证。所以,使用存储过程可以兼得二者的长处,来解决这两方面的问题。该存储过程 17的创建代码如下: 本 科 毕 业 设 计 第 20 页 共 42 页 CREATE proc dbo.storePurchaseAmount dnum varchar(10),purchaseAmount int as declare amount int set amount=(select amount from drug where dnum=dnum) if(select store from purchasePlan where dnum=dnum)=否 ) begin update drug set amount=amount+purchaseAmount where dnum=dnum update purchasePlan set store=已经入库 where dnum=dnum end c) 药品销售信息表 系统中所使用的药品销售信息表有两个表,一个表是日销售信息表,一个是月销售信息表。日销售信息表是记录在当前这一天所销售的药品信息,包括销售的每种药品的数量和收入金额。该表的特点依然是冗余很小,只记录了药品的编号,这样会大大降低相同数据在数据库中的冗余存储,在向上 层显示此表的信息是使用了联系实体药品表的药品其它基本信息创建视图来显示完整信息。这样做不仅一定程度上保护数据也减少了数据库的存储量。而且使得数据库中的表管理更加规整。而月销售信息表的字段设置与日销售信息表的字段设置相同,不过它是统计一个月的销售的盈利情况,它使用日销售信息表中的触发器来维护两个表的数据一致。其中日销售信息表在数据库表中字段设置如表 5.7 所示。 表 5.7 销售记录信息表 字段名称 字段类型 字段大小 说明 允许空 Id Int 4 字节 系统自动编号 False Dnum Varchar 10 字节 药品的编号 False saleAmount Int 4 字节 药品的售量 False saleCrash Int 4 字节 售药现金 False saleTime Varchar 20 字节 销售时间 false 但是,此表中的一个问题是记录的每一次药品销售的记录,但在显示时应该要将每一种药品再统计出每一药品的销售情况,为解决此问题,在数据库中使用了视图,采用 本 科 毕 业 设 计 第 21 页 共 42 页 分组的方法统计每种药品的销售情况,再以此视图与药品信息联合成新的视图,最后能够为前台界面查询显示。 在日、月销售信息两表中有着很大的关联 性,它们的关系是每日销售的信息应该加入到当前月的销售信息中,它其中的加和逻辑应该是如果以前未销售过该种药品则在月销售信息表中加入新的数据项,若是从前已经销售过该种药品,则不应该加入该销售信息,而是修改该种药品销售信息的记录,即增加销售量和销售金额。在数据库中完成该种逻辑功能的方法是在日销售信息表中创建触发器,创建该触发器 19的代码如下: create trigger dayIntoMonth on daySaleStatistic for insert as declare dnum varchar(10),saleAmount int,saleCrash int select dnum=(select dnum from inserted), saleAmount=(select saleAmount from inserted) , saleCrash =(select saleCrash from inserted) if(dnum in (select dnum from monthSaleStatistic) begin update monthSaleStatistic set saleAmount=(select saleAmount from monthSaleStatistic where dnum=dnum)+saleAmount), saleCrash=(select saleCrash from monthSaleStatistic where dnum=dnum)+saleCrash) where dnum =dnum end else begin insert into monthSaleStatistic (dnum,saleAmount,saleCrash) values(dnum,saleAmount,saleCrash) end 在向销售信息表中加入信息时,还有一个数据的完整性约束,这属于数据库的事务操作的原子性特点,这种完整性约束是向销售信息表中加入数据时就意味着卖出了某种药品,所以此时该种药品的库存还应当减少与销售信息表加添加的药品数量相等的数目,从而保证符合常理的数据,本系统解决该问题的方法是使用了存储过程,从而提高系统的速度。 在会员顾客销售药品时,若是会员顾客 ,则系统会依据顾客的会员卡号,向该顾客的记录中添加其所消费的金额,并将此次消费的金额转换为相应的积分,此处的逻辑是 本 科 毕 业 设 计 第 22 页 共 42 页 所要添加消费金额的顾客必定要在顾客信息表之中,且要向其加入数据时必须先找到对就的顾客,然后再加入。但是若仅使用常用的插入语句,则很难灵活地动态的找到所要添加数据的顾客的信息,所以数据库系统中解决该问题的方法是使用存储过程,形成一项事务,从而可以灵活的修改指定顾客的信息。数据库系中创建该存储过程的代码如下所示: create proc addConsumerScore cnum varchar(20),score int,crash int as declare dbscore int,dbcrash int select dbscore=(select ctotalScore from consumer where cnum=cnum), dbcrash=(select ctotalCrash from consumer where cnum=cnum) if(cnum in (select cnum from consumer) begin update consumer set ctotalScore=dbscore+score, ctotalCrash=dbcrash+crash where cnum=cnum end e) 数据库中视图逻辑 前面所介绍的是数据库中基本表的设置和数据操作情况,但是在前台界面中使用最多的不是数据的操作而是查询数据库中相应的数据。但基本表的设置是实体数据相对独立不能完成集成的数据显视,因为基本表中数据冗余很小,不能显示全部的信息。为了能方便的查询表中的数据,在本数据库系 统中使用了 9 个视图来显示数据,图中的数据多是两个表到三个表数据的集成,从层次上来说,这些视图应当属于基本表的更上一层,它更接近程序所使用的前台界面中的数据。 系统中所用的视图简单来说可以分为三类视图。其中一类是采购模块中所用到的的药品表、采购表、代理商表的总体信息的集成,它可以方便采购部门方便查询到某种药品是哪个代理商所经营的和此药品在库存中的数量;一类是库存部门使用到的入库登记时药品和所制定的采购表之间的联合信息,这类视图是药品信息表和采购表两表的集成显示;再一类是销售模块中所用的冗余小的销售记录与药品信 息的合成完整显示某种药 本 科 毕 业 设 计 第 23 页 共 42 页 品的销售情况,财务模块中也是使用的该视图来统计收支情况,以及在销售中查询药品的销售价价格查询所形成的视图。 数据库系统中的基本表和视图的层次逻辑关系如图 5.4 所示。 图 5.4 数据库层次逻辑图 基本表 数据库 药品表 视图 代理商 采购表 销售表 员工表 采购查询 库存登记 日销售 药品销售 月销售 采购模块 应用 库存模块 销售模块 财务模块 登录 本 科 毕 业 设 计 第 24 页 共 42 页 6 详细设计 从整个系统的功能实现来分,系统可分为六个大的模块,这六部分分别是:员工进入系统的身份验证模块、管理员模块、库存模块、采购模块、销售模块和财务模块。在后四个模块中每个模块形成一个独立的界面,各个界面集成各 自的功能,虽然界面不同,但所处理的数据相互交错。员工进入系统的身份验证模块是根据员工的不同身份信息分别进入到不同的模块界面中去。后面几个小节将详细的介绍五个模块的具体实现过程。 整个系统在项目实现时共涉及了十个包文件,这些包逻辑结构如图 6.1 所示。m e d in ce Ma n a g em a r k e t r e s e r v e f in a n cep u r ch a s ed a t a b a s em id d le 实体对像co n f iga d m in is t e r 图 6.1 系统包逻辑图 最上层的 medinceManage 是整个项目中各个模块的主界面存放的文件包,同时也包括登录界面,在这个包中的各个主界面又分别以下一层其模块名称命名的包相联系;管理员 administer 包有仅与一层的各模块包相关联,而且也与底层的服务包相 关联;第三层是各个模块主界面所关联的各种文件,它们是以模块名称来命名的,包括使用的界面和相关的处理逻辑类文件;最下层的文件包为上层文件包提供服务,分别单独存放,使项目更规整。 本 科 毕 业 设 计 第 25 页 共 42 页 6.1 员工身份验证模块 登录界面是用户进入系统的门户,该界面中加入了相应的防止异常处理以使其稳定性增强,系统的登录界面如图 6.2 所示。 图 6.2 登录界面图 虽然系统的登录界面比较简单,但后台所处理的页面跳转逻辑却复杂,这个过程需要判断用户的用户名和密码,还要依据用户部门属性来操作其进入到自己的界面。并且在进入到各自系统界面后 ,还要在自己的系统中显示自己各人的信息,而不须查询。这个处理的过程是在 Java 语言中写成一个员工的实体 Bean 来存储员工的这些数据,将在数据库员工信息中查询到的字段信息设置在 Bean 中,再传递此 Bean 给相应的界面,这样不仅加大了数据传递的粒度,也简化了用户琐碎信息的数据类型处理。此界面到其它界面的逻辑验证过程如图 6.3 所示。 图 6.3 登录验证流程图 N N N N N Y Y Y Y Y 管理员 管理员界面 销售界面 采购界面 库存界面 财务界面 系统登录 开始 结束 相应模块内操作 销售人 员 采购人员 库存人员 库存人员 本 科 毕 业 设 计 第 26 页 共 42 页 此图只是说明登录中的逻辑,它是系统中功能实现的一个重要部分,底层的各个界面都是一个独立的较大的功能实 现模块,在此图中并显示这些信息。 6.2 库存功能模块 库存模块从功能上分可分为三个大的实现部分,一部分是为制定采购计划进行查询使用的药品信息查询界面;一部分是制定采购计划界面;再一部分是当采购药品可以入库时进行入库登记,修改库存量;还有一个其它界面中都有的时间显示功能。它在系统运行时又启用了别外一个线程,该线程负现时间的动态显示。库存界面的实现界面效果如图 6.4 所示。 图 6.4 库存管理界面图 在实现的程序代码技术上来说,药品信息查询、和销售信息查询的方法和在界面中显示的方法都相同,都是相应的按钮触发到 数据库中查询相应数据并在右下方的 Table表中显示出来,在方法的调用层次上来说,它直接调有项目中数据库数据处理包中的方法,没有经过太多的逻辑加工就直接显示出来了,此处的没有加入过多的详细查询功能,因为在采购计划制定中还有详细的查询。 该模块中所包含的界面项目中放在如图 6.1 所示的 reserve 包中。此模块所使用到的界面简单介绍如表 6.1 所示。 本 科 毕 业 设 计 第 27 页 共 42 页 表 6.1 库存模块使用界面表 页面 系统名称 功能描述 库存部门界面 Reserve.java 集成该模块全部界面 采购计划制定界面 purchasePlan.java 用于制定采购计划 计划修改界面 purchasePlanUpdateAndDelete.java 修改或删除某项计划 入库登记界面 StoreCheck.java 登记可以入库的新药品 该模块的核心功中当属后两个功能,一个是采购计划制定,一个是采购药品入库登记。采购计划制定界在,在点击制定采购计划时,触发事件形成一个新的界面,所弹出的新的界面如图 6.5 所示。 图 6.5 药品销售界面图 在此界面中可以查询系统中所有药品的信息,这些药品信息可能是采购部门新加入的未曾采购过的药品,也可能是已经销 售过的药品。所以此处的销售情况为不详,点击红色字体的已销售药品查询,在下方的表中显示的数据是在本月已经销售过的药品信息,并且显示了月、日的销售量情况和相关的一些其它信息。上述所介绍的是药品信息查询功能,它也可以说是一个小的实现功能。查询到药品信息,库存部门可以根据当前的库存量销售量制定相应的采购计划,点左下方的表格就在某一行药品信息,就可以在采购表中添加此种药品的信息,采购单的信息在右上方的表格中显示,根据按钮显示的文字提示可以进行不同的操作,可删除某种将要采购的药品也可以清空整个采购单。右下方是一个文本显 示区域,点击打印预览就是可将表格中的整个采购数据显示到该页面,并计算出该采购单的可能支出总金额。最后点击红色字体的结算按钮刚可将表中数 本 科 毕 业 设 计 第 28 页 共 42 页 据加入到数据库中。实现此界面的功能使用了 MVC 模式,其它控制层可分为两个文件包来管理其类方法,一个包是管理数据库查询和操作底层的数据库表,再上一层是控制在界面中数据流动的和加工的类文件,最后再由数据库操作类中的方法把处理过的数据加入到数据库中去。该界面的处理流程图如图 6.6 所示。 图 6.6 采购计划制定流程图 与些采购 计划相关的操作还有采购计划查询、计划修改和取消采购计划。采购计划查询就是查询浏览已经制定有采购表中的数据,它的实现方法与效果与药品信息查询和销售信息查询相似,点击查询到的采购信息表中某行数据就会弹出此种药品采购数量修改界面,此时可以修改或退出该界面,其中计划修改就是使用的此界面来修改采购计划。取消采购计划就是在数据库中清空采购信息,调用的方法是数据库操作层的类方法。 当采购部门采购完药品后,由库存部门登记药品入库,此界面用于登记药品是否入 N 采购完毕毕 Y 查询药品 结束 输入药品名称 加入采购表 记录采购信息 输出采购信息 制定采购计划 开始 本 科 毕 业 设 计 第 29 页 共 42 页 库并且系统自动修改药品库存中的数量。该界面如图 6.7 所示。 图 6.7 药品入库界面图 在界面中点击查询按钮,可以具本查询了可以整体查询,点击表中某一行的数据,入库一列将会由“否”变为“是”,或反之,点击全部入库按钮则可以全部修改此列中的数据,点击右下方的系统结算按钮则可以系统入库,并在库存中增加对应的药品的库存量。此页面中同样可以打印和统计采购表中的信息。 6.3 采购功能模块 采购功能模块可以分解成更小的四个部分功能模块,该模块包括药品信息操作、代理商信息处理操作,采购单的查询和采购单的汇总,其中系统的时间显示其它模块中的功能一样,此处不在介绍。该模块在系统中实现的效果 图如图 6.8 所示。 图 6.8 采购管理界面图 本 科 毕 业 设 计 第 30 页 共 42 页 采购模块的代理人商信息的添加是为了能方便的再次采购药品时与代理供应商联系,此处对其操作有四种功能:添加信息、修改信息、查询信息、删除信息。这此操作直接调用与数据库处理相关类中的方法。 药品信息的添加是为了增加采购参考的药品的种类。此处药品添加意在当采购部门在采购过程中添加某位代理商所经营的可能会用到的药品,以备后用,此处一个实现起来比较困难的一步的是在添加药品时该药品要与其代理商相一致,但并不是在同一界面中同是添加药品信息和代理商信息,因为将二者设计为两个实 体比较合理。解决的方法是当添加药品信息的界面出现时系统自动到数据库中查询代理商的信息,记录的代理商信息为选择而不是添加,从而可以防止记录的错误添加。药品信息添加的界面效果图如图 6.9 所示。 图 6.9 药品添加界面图 该模块菜单栏中的采购查询一项是对库存部门制定的采购计划进行查询,点击查询得到的采购数据表的某一行时会弹出修改该行药品的采购变动情况,如采购价格可能变动,并且可能因此而改动采购数量,修改完成后数据库会记录该条据曾被修改过,但不记录修改了什么和修改前数据什么。只是标记曾经修改过此项数据。菜单栏的 最后一项是采购单的汇总,统计整个采购单的支出情况。 采购模块中所用的界面和其功能描述如表 6.2 所示。 本 科 毕 业 设 计 第 31 页 共 42 页 表 6.2 采购模块使用界面表 页面 系统名称 功能描述 采购部门界面 Purchase.java 集成该模块全部界面 药品添加界面 DrugInforAdd.java 药品信息添加 药品修改和删除界面 DurgUpdateAndDelete.java 药品信息的修改和删除 代理商信息添加界面 AgencyInforAdd.java 代理商信息添加 代理商信息修改放删除界面 AgencyUpdateAndDelete.java 代理商信息的修改和删除 采购信息具体查询界面 PurchaseSpecailSearch.java 具体查询某种药品的采购信息 采购信息修改界面 PurchasePlanUpdate.java 修改采购数据 采购统计界面 RealPurchasePlan.java 采购后的支出统计 各个文件的整理归类根据它所完成的功能和与其它模块的相似性存放到不同的包中,药品和代理商因为是两个相似的实体,二者放在如图 6.1 所示的“实体对像”包中; 其它界面与其逻辑辅助类存在 purchase 包中。 6.4 销售功能模块 销售模块再从功能实现上分解可分为四个部分,一部分是顾客信息处理部分,一部分是销售工作时所用到的操作功能,一部分是日、月销售信息统计功能,再一部分是日、月销售信息汇总和其信息在数据库中清空的功能,该模块的实现效果图如图 6.10 所示。 图 6.10 销售管理界面图 本 科 毕 业 设 计 第 32 页 共 42 页 菜单栏中的顾客信息选项中是对会员顾客信息的处理,该处所用的顾客信息为是了在销售药品时将消费的金额和其转化的积分记录到特定的顾客信息之中。它的处理功能包括添加顾客信息,查询顾客信息,查询完成后可在查询到数据表中选中某 一行然后在弹出的修改和删除顾客信息处理界面中进行相应的操作。系统中对顾客的其他操作多是在系统的内部自动进行的,如顾客消费时的金额是在消费结算完成时顾客信息就自动在数据库中被修改了,而且同一顾客的多次消费会多次修改,而不是在数据库中添加新的记录。整个系统对顾客最主要的操作是在销售时自动记录顾客的消费量和其积分数量。 该模块的名称是销售模块,顾名思义,这里最主要的功能是对药品的销售工作的完成。销售界面中需要查询药品信息,如果是会员还要查询会员信息,核算好所要财购的药品后将销售收入信息和顾客的消费信息分别添加到数 据库不同的表中,完成这些功能的销售界面如图 6.11 所示。 图 6.11 药品销售界面图 此界面的所要解决的逻辑问题有四个方面,第一方面是在查询将要销售的药品信息一栏中查找相应的药品,查询药品时采用了比较灵活的方法,药品的查询使用了数据库的模糊查询方法,确保肯定会找到相应的药品;第二方面是查询顾客的信息,并在会员顾客的情况下查询打折率,以优惠会员顾客,系统中存储打折比率使用的是文件而没有用数据库,在财务模块中可以方便的修此处的数据。第三方面是将药品信息加入到销售清单里,销售人员也可以修改药品的销售量,此处多 加的了一个判断,当药品库存为零时则提示不可以销售药品,第四部分要完成的功能是将销售单中的药品销售信息加入进 本 科 毕 业 设 计 第 33 页 共 42 页 行统并加入到系统的数据库中去,与此同时也将此消费的金额加入到该会员顾客记录的信息表中。完成这一系工作后,则可以进行新一轮的销售工作,该界面的处理流程如图6.12 所示。 图 6.12 药品销售流程图 N= Y Y 待售药品 不再销售 销售清单 药品销售 开始 记录销售清单信息 结束 N 会员判别 输出销售信息息 输入药品名称 查询 输入会员证件号 查询 记录顾客消费信息 本 科 毕 业 设 计 第 34 页 共 42 页 在图 6.10 界面的菜单栏里的第三项是销售统计,此处的功能相对比较简单,点击其下面的按钮时在数据库中查询相应的日、月销售信息视图中的信息,并在右下方的表格中 显示数据。其它模块中都使用了与此类似的功能和方法。第四项销售信息汇账,它也分为日销售信息和月销售信息汇账,两个界面中的功能是在查询到相应的数据库中的信息后进行总的收入统计,并且可以打印统计信息。 销售模块的所有功能实现如上所述,销售模块所使用到的界面和其主体功能描述如表 6.3 所示。 表 6.3 销售模块使用界面表 页面 系统名称 功能描述 销售部门界面 Market.java 集成该模块全部界面 顾客添加界面 ConsumerInforAdd.java 顾客信息添加 顾客修改和删除界面 ConsumerUpdateAndDelete.java 顾客信息的修改和删除 药品销售界面 DrugSale.java 药品销售 日销售汇总界面 DaySaleReport.java 日销售收入信息的汇总 月销售汇总界面 MonthSaleReport.java 月销售收入信息的汇总 各个文件根据其功能类型分别存放在不同的包中,如销售部门界面同其它部门的界面并列存放在如图 6.1 所示的 mdeinceManage 包中,而日、月销售界面则同与该逻辑控制包放在 market 包中。 6.5 财务功能模块 财务功能的模块可以再分 解成三人小的功能部分,第一部分是对药品销售收入的统计和其它支出的统计,也包括了对纯利润的计算,这一部分是财务的一个重要的功能,第二部分是确定或修改某种药品的销售价格,它是对采购人员采购来的尚未确定销售价格的药品进行订价,或者依据某种药品的供需情况,修改该种药品的销售价格,第三部分是修改系统中用到某些参数,这些参数有销售给会员顾客的打折比例、顾客消费金额转换为积分的转换比率和采购人员在不清楚销售情况时对药品建议采购量。这些参数是由配置文件来存储的,而未用数据库来存存储,目的是为容易修改这种不经常改变的数据,并 且节省数据库中的表格设置,因为,若在数据库中设计该表也只是存储有限数据,这样会造成浪费。财务功能模块实现的界面如图 6.13 所示。 本 科 毕 业 设 计 第 35 页 共 42 页 图 6.13 财务管理界面图 菜单栏的第一项是收支查询,它的功能是统计整个药店的所有涉及财务情况的活动的财务使用,它可以完成统计销售收入的盈利情况,和采购和员工薪资的支出情况,最后一项是对总体的查询,这一项是计算出最终的纯盈利情况并且实现了打印该结果的功能, 销售订价是该功能中实现相对困难的一项,它的实现逻辑过程是先在数据库中查询将要修改的药品信息,然后再在查询到的表格中修改该 种药品的销售价格,最后点击修改按钮,刚会记录修改的药品信息。界面上实现操作起来是比较简单,其内部运行逻辑是当点击修改按钮时,所触发的方法中传弟的参数是查询到的整个表格信息,在系统中会过滤出哪种药品是修改了的和哪种不需要修改,然后再在数据库修改改动过后数据项。实现上述功能的界面如图 6.14 所示。 图 6.14 药品销售价格修改界面图 本 科 毕 业 设 计 第 36 页 共 42 页 与该功能在同一菜单下的药品的价格信息查询,这项功能比较简单,它只是查询相关的价格信息并不做修改。 菜单栏的第三项是参数确定,它的功能是修改某种系统中的参数,这些参数是销售模块中 使用的会员打折比例和其积分比率。积分比率就是消费要多少现金才能转化为积分中的一分,只一个参数是采购模块中使用的一项数据,这个数据是当采购药品时对不确定的药品所要采购的数量。三项数据均放在配置文件中,系统使用的是文件流的方式对其的进行读写。修改其值的界面放在了三个界面中,各个界面实现效果十分类似,其中顾客购药的打折比率的实现的界面如图 6.15 所示。 图 6.15 参数打折比例设定界面图 在财务模块中使用到相对较少的界面,并且参数界面效果类似,系统中使用到的界面和其功能描述如表 6.4 所示。 表 6.4 财务模块 使用界面表 页面 系统名称 功能描述 财务部门界面 Finance.java 集成该模块全部界面 总体财务收支统计界面 FinanceIntegrate.java 统计各项收支并且汇总、打印 药品价格修改界面 SalePriceUpdate.java 修改药品的销售价格 打折率设置界面 SepCountRate.java 设置会员顾客购药时的打折率 积分转换比率设置界面 SepScoreRate.java 设置消费金额的转换比率 药品采购数量设置界面 SepPlanPurchaseAmount.java 设置某种药品的采购数量 同其它模块中文件存放方式类似,主体功能界面 Finance 文件放在如图 6.1 所示medinceManage 文件包中,其它界面存放在以该模块名称合名的 finance 文件包中。 本 科 毕 业 设 计 第 37 页 共 42 页 6.6 管理员功能模块 管理员模块从操作权限和所涉及的内容是最多的,它系统的其它四
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI诊断系统优化医疗服务流程的新趋势
- 医疗行业跨机构数据安全保护的策略研究
- 2025年司机年终工作总结模版
- AI技术在辅助药物研发中的潜在作用和责任分析
- 医疗产品推广的动画效果运用
- 协会年会发言稿模版
- 关注社会公共卫生安全定期执行医疗保健及预防策略研究
- 医疗机构管理中的信息透明度与隐私保护探讨
- 保时捷售车合同范例
- 从风险控制角度谈企业级区块链的合规和安全保障
- 2025森林消防考试试题及答案
- 武汉四调高中数学试卷及答案
- 液压与气压传动(第5版)课件:气动控制阀及基本回路
- 2025年国家保安员试考试题库(附答案)
- 大部分分校:地域文化形考任务三-国开(CQ)-国开期末复习资料
- 超星尔雅学习通《当代大学生国家安全教育》章节测试答案
- 隧道反坡排水方案
- 民用航空行业标准(PPT)
- 班组长绩效考核表
- 毕业论文三相电压型PWM整流器的研究
- 美国冈氏X光判读之骨盆定位
评论
0/150
提交评论