实现企业信息化管理是现代社会中小企业稳步发展的必要条件,它可以提高企业的管理水平和工作效率,最大限度地减少手工操作带来的失误。进销存管理系统正是一个信息化管理软件,可以实现企业的进货、销售、库存管理等各项业务的信息化管理。本章将介绍如何使用JavaSwing技术和SQLServer2005数据库开发跨平台的应用程序。通过阅读本章,可以学习到:如何进行项目的可行性分析如何系统设计如何进行数据库分析和数据库建模企业进销存主要功能模块的开发过程如何设计公共类如何将程序打包进销存管理系统(Swing+SQLServer2005实现)19第章Java典型模块与项目开发实战大全·2·19.1开发背景加入WTO之后,随着国内经济的高速发展,中小型的商品流通企业越来越多,其所经营的商品种类繁多,难以管理,而进销存管理系统逐渐成为企业经营和管理中的核心环节,也是企业取得效益的关键。×××有限公司是一家以商业经营为主的私有企业,为了完善管理制度,增强企业的竞争力,公司决定开发进销存管理系统,以实现商品管理的信息化。现需要委托其他单位开发一个企业进销存管理系统。19.2系统分析19.2.1需求分析通过与×××有限公司的沟通和需求分析,要求系统具有以下功能。系统操作简单,界面友好。规范、完善的基础信息设置。支持多人操作,要求有权限分配功能。为了方便用户,要求系统支持多条件查询。对销售信息提供销售排行。支持销售退货和入库退货功能。批量填写进货单及销售单。支持库存价格调整功能。当外界环境(停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。19.2.2可行性分析根据《GB8567-88计算机软件产品开发文件编制指南》中可行性分析的要求,制定可行性研究报告如下。1.引言编写目的以文件的形式给企业的决策层提供项目实施的参考依据,其中包括项目存在的风险、项目需要的投资和能够收获的昀大效益。背景×××有限公司是一家以商业经营为主的私有企业。为了完善管理制度、增强企业的竞争力、实现信息化管理,公司决定开发进销存管理系统。第19章Swing+SQLServer2005实现进销存管理系统·3·2.可行性研究的前提要求企业进销存管理系统必须提供商品信息、供应商信息和客户信息的基础设置;提供强大的多条件搜索功能和商品的进货、销售和库存管理功能;可以分不同权限、不同用户对该系统进行操作。另外,该系统还必须保证数据的安全性、完整性和准确性。目标企业进销存管理系统的目标是实现企业的信息化管理,减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提升企业市场竞争力。条件、假定和限制为实现企业的信息化管理,必须对操作人员进行培训,而且将原有的库存、销售、入库等信息转换为信息化数据,需要操作员花费大量时间和精力来完成。为了不影响企业的正常运行,进销存管理系统必须在两个月的时间内交付用户使用。系统分析人员需要2天内到位,用户需要5天时间确认需求分析文档。去除其中可能出现的问题,例如用户可能临时有事,占用6天时间确认需求分析。那么程序开发人员需要在1个月零15天的时间内进行系统设计、程序编码、系统测试、程序调试和网站部署工作。其间,还包括了员工每周的休息时间。评价尺度根据用户的要求,项目主要以企业进货、销售和查询统计功能为主,对于库存、销售和进货的记录信息应该及时、准确地保存,并提供相应的查询和统计。由于库存商品数量太多,不易盘点,传统的盘点方式容易出错,系统中的库存盘点功能要准确地计算出每种商品的损益数量,减少企业不必要的损失。3.投资及效益分析支出根据系统的规模及项目的开发周期(两个月),公司决定投入7个人。为此,公司将直接支付9万元的工资及各种福利待遇。在项目安装及调试阶段,用户培训、员工出差等费用支出需要2万元。在项目维护阶段预计需要投入4万元的资金。累计项目投入需要15万元资金。收益用户提供项目资金32万元。对于项目运行后进行的改动,采取协商的原则根据改动规模额外提供资金。因此从投资与收益的效益比上,公司可以获得18万元的利润。项目完成后,会给公司提供资源储备,包括技术、经验的积累,其后再开发类似的项目时,可以极大地缩短项目开发周期。4.结论根据上面的分析,在技术上不会存在问题,因此项目延期的可能性很小。在效益上公司投入7个人、2个月的时间获利18万元,效益比较可观。在公司今后发展上,可以储备网站开发的经验和资源。因此认为该项目可以开发。Java典型模块与项目开发实战大全·4·19.2.3编写项目计划书根据《GB8567-88计算机软件产品开发文件编制指南》中的项目开发计划要求,结合单位实际情况,设计项目计划书如下。1.引言编写目的为了保证项目开发人员按时保质地完成预定目标,更好地了解项目实际情况,按照合理的顺序开展工作,现以书面的形式将项目开发生命周期中的项目任务范围、项目团队组织结构、团队成员的工作责任、团队内外沟通协作方式、开发进度、检查项目工作等内容描述出来,作为项目相关人员之间的共识和约定以及项目生命周期内的所有项目活动的行动基础。背景企业进销存管理系统是由×××有限公司委托我公司开发的大型管理系统,主要功能是实现企业进销存的信息化管理,包括统计查询、进货、销售、库存盘点及系统管理等功能。项目周期两个月。项目背景规划如表19.1所示。表19.1项目背景规划项目名称项目委托单位任务提出者项目承担部门企业进销存管理系统×××有限公司陈经理策划部门研发部门测试部门2.概述项目目标项目目标应当符合SMART原则,把项目要完成的工作用清晰的语言描述出来。企业进销存管理系统的项目目标如下:企业进销存管理系统的主要目的是实现企业进销存的信息化管理,主要的业务就是商品的采购、销售和入库,另外还需要提供统计查询功能,其中包括商品查询、供应商查询、客户查询、销售查询、入库查询和销售排行等。项目实施后,能够降低采购成本、合理控制库存、减少资金占用并提升企业市场竞争力,整个项目需要在两个月的时间内交付用户使用。产品目标时间就是金钱,效率就是生命。项目实施后,企业进销存管理系统能够为企业节省大量人力资源,减少管理费用,从而间接为企业节约成本,提高企业效益。应交付成果在项目开发完后,交付内容有企业进销存管理系统的源程序、系统的数据库文件、系统使用说明书。将开发的进销存管理系统打包并安装到企业的网络计算机中。企业进销存管理系统交付用户之后,进行系统无偿维护和服务6个月,超过6个月进行系统有偿维护与服务。项目开发环境第19章Swing+SQLServer2005实现进销存管理系统·5·操作系统为WindowsXP或Windows2003均可,使用集成开发工具Eclipse,数据库采用SQLServer2005,项目运行环境为JDK6.0。项目验收方式与依据项目验收分为内部验收和外部验收两种方式。在项目开发完成后,首先进行内部验收,由测试人员根据用户需求和项目目标进行验收。项目在通过内部验收后,交给客户进行验收,验收的主要依据为需求规格说明书。3.项目团队组织组织结构为了完成进销存管理系统的项目开发,公司组建了一个临时的项目团队,由公司副经理、项目经理、系统分析员、软件工程师、美工设计师和测试人员构成,如图19.1所示。图19.1项目团队组织结构图人员分工为了明确项目团队中每个人的任务分工,现制定人员分工,如表19.2所示。表19.2人员分工姓名技术水平所属部门角色工作描述陈××MBA经理部副经理负责项目的审批、决策的实施侯××MBA项目开发部项目经理负责项目的前期分析、策划、项目开发进度的跟踪、项目质量的检查钟××高级系统分析员项目开发部系统分析员负责系统功能分析、系统框架设计李××高级美术工程师美工设计部美术工程师负责软件美术设计粱××高级软件工程师项目开发部系统分析员负责软件设计与编码Java典型模块与项目开发实战大全·6·马××高级软件工程师项目开发部软件工程师负责软件设计与编码王××中级软件工程师软件评测部测试人员负责软件测试与评定19.3系统设计19.3.1系统目标根据需求分析的描述以及与用户的沟通,现制定系统实现目标如下。界面设计简洁、友好、美观大方。操作简单、快捷方便。数据存储安全、可靠。信息分类清晰、准确。强大的查询功能,保证数据查询的灵活性。提供销售排行榜,为管理员提供真实的数据信息。提供灵活、方便的权限设置功能,使整个系统的管理分工明确。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。19.3.2系统功能结构本系统包括基础信息、进货管理、销售管理、库存管理、查询统计、系统管理等6大部分。系统结构如图19.2所示。第19章Swing+SQLServer2005实现进销存管理系统·7·企业进销存管理系统基础信息管理进货管理销售管理库存管理查询统计系统管理商品信息管理客户信息管理供应商信息管理进货单进货\退货销售单销售退货库存盘点库存价格调整客户查询商品查询供应商查询销售查询销售退货查询入库查询入库退货查询销售排行操作员管理更改密码权限管理退出系统供应商信息添加供应商修改与删除商品信息添加商品修改与删除客户信息添加客户修改与删除图19.2企业进销存管理系统功能结构19.3.3业务逻辑编码规则遵守程序编码规则所开发的程序,代码清晰、整洁、方便阅读,并可以提高程序的可读性,要做到见其名知其意才能编写出优雅的程序代码。本节从数据库设计和程序编码两个方面介绍程序开发中的编码规则。1.数据库对象命名规则数据库命名规则数据库命名以字母“db”开头(小写),后面加数据库相关英文单词或缩写。下面将举例说明,如表19.3所示。表19.3数据库命名Java典型模块与项目开发实战大全·8·数据库名称描述db_JXC企业进销存管理系统数据库db_library图书馆管理系统数据库注意:在设计数据库时,为使数据库更容易理解,数据库命名时要注意大小写。数据表命名规则数据表以字母“tb”开头(小写),后面加数据库相关英文单词或缩写和数据表名,多个单词间用“_”分隔。下面将举例说明,如表19.4所示。表19.4数据表命名数据表名称描述tb_sell_main销售主表tb_sell_detail销售明细表字段命名规则字段一律采用英文单词或词组(可利用翻译软件)命名,如找不到专业的英文单词或词组可以用相同意义的英文单词或词组代替。下面将举例说明,如表19.5所示。表19.5字段命名字段名称描述ID流水号Name名称ProductInfo商品信息注意:在命名数据表的字段时,应注意字母的大小写。2.业务编码规则供应商编号供应商的ID编号是进销存管理系统中供应商的唯一标识,不同的供应商可以通过该编号来区分。该编号是供应商信息表的主键。在本系统中对该编号的编码规则:以字符串“gys”为编号前縀,加上4位数字作编号的后縀,这4位数字从1000开始。例如(gys1001)。客户编号和供应商编号类似,客户的ID编号也是客户的唯一标识,不同的客户将以该编号进行区分。该编号作为客户信息表的主键,有数据的唯一性的约束条件,所以,在客户信息表中不可能有两个相同的客户编号。企业进销存管理系统对客户编号的编码规则:以字符串“kh”为编号的前縀,加上4位数字作编号的后縀,这4位数字从1000开始。例如(kh1002)。商品编号商品编号是商品的唯一标识,它是商品信息表的主键,用于区分不同的商品。即使商品名称、单价、规格等信息相同,其ID编号也是不可能相同的,因为主键约束不可以存在相同的ID值。商品编号的编码规则和客户编号、供应商编号的编码规则相同,但是前縀使用了“sp”字符串。例如(sp2045)。销售单编号第19章Swing+SQLServer2005实现进销存管理系统·9·销售单编号用于区分不同的销售凭据。销售单编号的命名规则:以“XS”字符串为前縀,加上销售单的销售日期,再以3位数字作后縀。例如(XS20071205001)。入库编号入库编号用于区分不同的商品入库信息。入库编号的命名规则:以“RK