1、第 1 页 共 35 页目录第一章 绪论 21.1 开发背景 .21.2 开发意义 .3第二章 系统分析 32.1 系统的需求分析 .32.2 系统开发设计思想 .32.3 系统开发步骤 42.4 系统的主要技术 .42.4.1 B/S 系统的三层体系结构 42.4.2 jeecg 智能开发平台 52.5 系统的运行环境和开发平台 52.5.1 硬件设备及操作系统 52.5.2 系统开发工具 62.5.3 开发工具简介 6第三章 系统设计 73.1 系统流程 73.2 系统功能模块的划分 .83.2.1 用户模块 .83.2.3 产品管理 83.2.4 供应商管理 .83.2.5 入库管理 9
2、3.2.6 出货管理 93.2.7 分部管理 93.2.8 库存查看 93.2.9 系统管理 93.2.10 系统监控 93.3 数据库设计 93.3.1 数据库需求分析 .93.3.2 数据库的逻辑设计 .10第四章 系统实现 144.1 主要界面实现 144.1.1 用户登陆 .144.1.2 首页 154.1.3 系统管理-部门管理 154.1.4 系统管理-用户管理 .164.1.5 系统管理-角色管理 .164.1.6 基础资料-货品信息 .174.1.6 基础资料-供货商信息 .184.1.7 基础资料-分公司信息 .194.1.8 货品出入库-货品入库 .194.1.9 货品出入
3、库-货品出库 .20第 2 页 共 35 页4.1.10 货品出入库-库存查询 .204.2 主要功能程序的实现 214.2.1 数据库连接的建立 214.2.2 货品添加 .224.2.3 货品录入相关页面 .25第五章 系统的测试 325.1 软件测试的目的和原则 .32第六章 总结 33参考文献 34致谢: 34摘要JAVA 是前 SUN 公司(已被甲骨文收购)在九十年代中期推出的一门面向对象的编程语言,目前广泛应用于开发基于 WEB 的大中型应用系统。本设计综合应用了 JAVA web 技术的特点,同时结合 jeecg 智能开发平台和 MySQL 数据库技术,实现基于互联网的物品进销存
4、管理系统。【关键字】JAVA , jeecg, MySQL, 进销存第一章 绪论1.1 开发背景如何吸引和留住人才,激发员工的创造行、工作责任感和工作热情已经成为关系企业兴衰的重要因素,人才已成为企业最重要的资产之一。 “公正、公平、合理”的企业管理理念和企业管理水平的提高,是社会对库存管理系统有了更高的需求;同时由于个人电脑的普及,数据库技术、客户/服务器技术,特别是Internet/Intranet 技术的发展,使的三代库存管理系统的出现才成为必然。库存管理系统的特点是从物品管理的角度出发,用集中的数据库将几乎所有与物品相关的数据统一管理起来,形成了集成的信息源。有好的用户界面,强有力的报
5、表生成工具、分析工具和信息的共享使得物品管理人员得以摆脱繁重的日常第 3 页 共 35 页工作,集中精力从战略的角度来考虑企业物品规划和政策。1.2 开发意义进销存管理系统能确保物畅其流,促使企业经营活动繁荣兴旺。不论什么企业,都要储备一些物资。以生产为主的企业,不储备一定的物资,不能维持其连续生产;服务性行业,也要备置某些需用的设备和服务用具;就连一般的事业单位,也要备有某些办公用品等。因此,各行各业都存在不同程度的库存管理业务。第二章 系统分析2.1 系统的需求分析 根据各大中小企业进销存工作流程与实际的需求和特色,本系统需满足以下几个方面的要求:1. 提供对商品信息维护的功能2. 提供供
6、应商维护功能3. 提供对进货渠道和进货数量的管理功能4. 提供出货相关内容的维护功能5. 提供库存查询和相关数据分析功能2.2 系统开发设计思想系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护;系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。第 4 页 共 35 页2.3 系统开发步骤进销存管理系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一
7、阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低在线学习系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。2.4 系统的主要技术2.4.1 B/S 系统的三层体系结构在 B/S 的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求。B/S 结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。在 B/S
8、三层体系结构下,表示层(view) 、功能层(controller)、数据层(model)被分割成三个相对独立的单元:第一层-表示层: Web 浏览器在表示层中包含系统的显示逻辑,位于客户端。它的任务是由 Web 浏览器向网络上的某一 Web 服务器提出服务请求, Web 服务器对用户身份进行验证后用 HTTP 协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在 Web 浏览器上。第二层-功能层:具有应用程序扩展功能的 Web 服务器在功能层中包含系统的事务处理逻辑,位于 Web 服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过第 5
9、页 共 35 页SQL 等方式向数据库服务器提出数据处理申请,后台数据库服务器将数据处理的结果提交给 Web 服务器,再由 Web 服务器传送回客户端。第三层-数据层:数据库服务器在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受 Web 服务器对数据库操纵的请求,实现对数据库查询、修改、更新、删除功能,把运行结果提交给 Web 服务器。从上面的分析中可以看出,B/S 体系结构是把 C/S 结构的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了 Web 服务器,于是由原来的 C/S 结构转变成 B/S 结
10、构。2.4.2 jeecg 智能开发平台JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。引领新的开发模式(Online Coding 模式- 代码生成器模式- 手工 MERGE 智能开发), 可以帮助解决 Java 项目 60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。JEECG 解决了大量的 java 开发中的重复性工作,简单功能由 Online Coding配置出功能;复杂功能由代码生成器生成进行手工 Merge; 复杂流程业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编
11、写业务逻辑。实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密性,又减少了开发人员的工作量。架构技术:Spring MVC+hibernate4+UI 快速开发库+Spring JDBC+Highcharts 图形报表 +jquery+ehcache2.5 系统的运行环境和开发平台2.5.1 硬件设备及操作系统服务器:inter Xeon e3(或与此相当的 CPU)以上配置的高性能 PC 机,有网络接口卡(NIC) ,内存应在 4g 以上,硬盘在 1T 以上。数据库软件 mysql,还可选用备份服务器。操作系统:OpenSuSE客户端:i3(或与此相当的 CPU)以上配置的 PC
12、 机,有网络接口卡(NIC) ,内存应在 1g 以上,硬盘在 80G 以上。Windows XP 以上操作系统,安第 6 页 共 35 页装 Web 浏览器。网络:服务器和客户端应有网络连通。配置 TCP/IP 协议。2.5.2 系统开发工具电脑配置:thinkpad 品牌机 CPU: i5 内存:DDR 2G 硬盘:150G操作系统:win 8开发环境:Eclispse Kepler Web 服务平台:Tomcat 7.0数据库:mysql 5.5jdk:7.02.5.3 开发工具简介(1) Eclipse 概述Eclipse 企业级工作平台,利用它我们可以在数据库和 J2EE 的开发、发布
13、,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 J2EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。(2) Tomcat7.0 概述Tomcat7.0 服务器是一个免费的开放源代码的 Web 应用服务器,Tomcat 是Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的 Servlet 和
14、 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 7.0 支持最新的 Servlet 3.0 和 JSP 2.2 规范。因为 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。(3) mysql 概述MySQL 是一个关系型数据库管理系统,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的第 7 页 共 35 页SQL 语言是用于访问数据库的最常用标
15、准化语言。MySQL 软件采用了双授权政策(本词条“授权政策” ) ,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型系统的开发都选择MySQL 作为数据库。第三章 系统设计3.1 系统流程与本系统相关的角色包括:系统管理员:管理系统用户、角色与权限、拥有系统全部权限,保证系统正常运行。仓库管理员:负责查看库存状态和进行发货流程。采购员:负责填写出入库单申请。采购经理:负责对入库单进行审批。进销存工作流程图采购经理总部采购员总部库管员分部销售员出库单填写库存是否充足结束充足 , 直接发货入库单填写审批库存不足不足 , 补货进行采购通过入库发货结束未
16、通过图 3.1 系统流程图第 8 页 共 35 页3.2 系统功能模块的划分软件所实现的功能强弱是衡量一个软件的最根本的标准。经过对系统的需求分析和实际应用需求,确定了本子系统的功能模块如图 3.2 所示:进销存系统用户管理用户登录 密码修改 用户退出货品管理货品录入 货品修改 货品查看 货品删除供应商管理供应商录入 供应商修改 供应商查看 供应商删除入库管理入库录入 入库修改 入库查看出库管理出库录入 出库修改 出库查看分部管理分部录入 分部修改 分部查看 分部删除图 3.2 系统功能模块图3.2.1 用户模块用户包括为用户分配账号,修改密码,用户安全退出功能。此模块只能由系统管理员统一配置
17、,用户不能自行注册,用户密码要进行加密处理。3.2.3 产品管理对需要入库的产品进行增删改查操作。3.2.4 供应商管理对供应商进行增删改查操作第 9 页 共 35 页3.2.5 入库管理先由采购员填写采购单,内容涉及产品相关信息,货源相关信息和数量,然后交由采购经理审批,审批通过后由采购员进行采购,采购完成后由库存管理员进行入库。整个采购流程中共分为 4 个状态,即:待审核、审核通过、驳回、已完成。3.2.6 出货管理由采购员填写出货单,内容涉及产品相关信息和数量,由采购经理进行审批,审批通过后出货。整个出货流程中共分为 4 个状态,即:待审核、审核通过、驳回、已完成。3.2.7 分部管理管
18、理要分公司的一些基本信息。3.2.8 库存查看可以查看产品的库存状况,库存数量。 3.2.9 系统管理进行用户角色权限分配,使不同的角色拥有不同的权限从而有效的使用系统进行 工作。3.2.10 系统监控记录登陆用户的登陆时间、推出时间及在系统内进行的所有操作。3.3 数据库设计3.3.1 数据库需求分析数据库的设计在一个系统中的作用十分重要,数据库建立的是否完善直接第 10 页 共 35 页影响到你个系统的实现。数据库的设计既要满足用户的需求又要尽最大可能的降低数据的冗余,尽可能降低数据间的依赖,将他们分离。在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,
19、收集基本数据,数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础3.3.2 数据库的逻辑设计逻辑结构设计的原则如下:(1) 尽可能的减少数据冗余和重复。(2) 结构设计与操作设计相结合。(3) 数据结构具有相对的稳定性。(4) 遵循数据库设计三范式。基于以上设计原则,本系统设计了如下数据库:全部都使用逻辑删除,为了便于开发,所以不添加任何表关联。表 1 管理员信息表(T_S_BASE_USER )字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 管理员编号userName varchar 10 N N 用户名Password varchar 1
20、00 N N 密码Realname Varchar 50 N Y 真实姓名Status Int 6 N Y 状态Browser Vachar 20 N Y 浏览器Signature Blob N Y 标志附件Userkey Varchar 200 N Y 秘钥码Departid Varchar 32 N Y 所属部门第 11 页 共 35 页表 2 供应商表(T_B_SUPPLIER)字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 供应商编号SupplierName varchar 20 N Y 供应商名称SupplierAddr varchar 26 N Y 供应商地
21、址SupplierTel varchar 15 N Y 供应商电话SupplierEmail varchar 20 N Y 供应商 EmailSupplierNum varchar 20 N Y 企业注册号ContactPerson varchar 10 N Y 联系人PersonTel varchar 15 N Y 联系人电话表 3 货品表(T_B_GOODS)表 4 库存表(T_B_STOCK )字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 货品编号GoodsName varchar 16 N Y 货品名称GoodsType varchar 2 N Y 货品类型C
22、ostPrice decimal 10 N Y 成本价Remark varchar 100 N Y 备注字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 库存编号GoodsId varchar 36 N Y 货品编号TotalCount varchar 10 N Y 数量第 12 页 共 35 页表 5 入库单表(T_B_PURCHASE)表 6 出库单表(T_B_SHIP)字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 入库编号GoodsId varchar 36 N Y 货品编号GoodsName varchar 20 N Y 货品名称Good
23、sNumber varchar 20 N Y 货品批号GoodsCount varchar 10 N Y 数量Price decimal 10 N Y 单价Status Char 1 N Y 状态SupplierId varchar 36 N Y 供应商编号SupplierName varchar 20 N Y 供应商名称ContactPerson varchar 10 N Y 联系人PersonTel varchar 15 N Y 联系人电话Remark varchar 100 N Y 备注字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 出库编号GoodsId var
24、char 36 N Y 货品编号GoodsName varchar 20 N Y 货品名称GoodsCount varchar 10 N Y 数量Status char 1 N Y 状态BranchId varchar 36 N Y 分部编号BranchName varchar 20 N Y 分部名称ShipDate date 10 N Y 出库日期Remark varchar 100 N Y 备注第 13 页 共 35 页表 7 分公司表(T_B_BRANCH)表 8 部门表(T_S_DEPART )表 9 日志表(T_S_LOG)字段 类型 长度 主键 是否空 说明id Varchar 3
25、6 Y N 日志编号Browser Varchar 100 N Y 浏览器Logcontent Text N Y 日志内容Loglevel Int 6 N Y 日志级别Note Text N Y 登陆 ipoperatetime Date N Y 操作时间operatetype Int 6 N Y 操作类型Userid Varchar 36 N Y 用户编号表 10 角色表(T_S_ROLE)字段 类型 长度 主键 是否空 说明Id varchar 36 Y N 分公司编号BranchAdd varchar 20 N Y 分公司地址BranchTel varchar 13 N Y 分公司电话L
26、eaderName varchar 10 N Y 负责人姓名LeaderTel varchar 13 N Y 负责人电话ZipCode varchar 8 N Y 邮编字段 类型 长度 主键 是否空 说明Id Varchar 36 Y N 部门编号Departname Varchar 100 N Y 部门名称Description Text N Y 描述Parentdepartid Varchar 36 N Y 上级部门编号第 14 页 共 35 页表 11 用户角色表(T_S_ROLE_USER)表 12 用户功能表(T_S_ROLE_FUNCTION)更多内容请具体查看 init.sql
27、文件第四章 系统实现4.1 主要界面实现本系统的 UI 设计主要采用 easyUI,使得界面更加大气美观。4.1.1 用户登陆输入正确的用户名、密码和验证码后进行登陆。字段 类型 长度 主键 是否空 说明Id Varchar 36 Y N 角色编号Rolecode Varchar 10 N Y 角色码Rolename Varchar 100 N Y 角色名称字段 类型 长度 主键 是否空 说明Id Varchar 36 Y N 用户角色编号Roleid Varchar 36 N Y 角色编号userid Varchar 36 N Y 用户编号字段 类型 长度 主键 是否空 说明Id Varch
28、ar 36 Y N 用户功能编号operation Varcahr 100 N Y 操作roleid Varchar 36 N Y 角色编号第 15 页 共 35 页4.1.2 首页登陆成功后进入首页面图 4.1 首页效果4.1.3 系统管理-部门管理通过部门管理,对部门进行增删改查操作第 16 页 共 35 页图 4.2 部门管理4.1.4 系统管理-用户管理在用户管理下面对用户进行增删改查图 4.3 用户管理4.1.5 系统管理-角色管理进入角色管理模块,添加角色,库存管理员、采购员、采购经理。然后为其分配相应的页面和按钮访问权限。第 17 页 共 35 页图 4.4 角色管理图 4.5
29、角色管理分配权限4.1.6 基础资料-货品信息添加货品信息,并对其进行维护。第 18 页 共 35 页图 4.6 货品信息4.1.6 基础资料-供货商信息添加供货商信息,并对其进行维护。图 4.7 供货商信息第 19 页 共 35 页4.1.7 基础资料-分公司信息添加分公司信息,并对其进行维护。图 4.8 分公司信息4.1.8 货品出入库-货品入库添加货品入库信息,并对其进行维护。图 4.9 货品入库信息第 20 页 共 35 页4.1.9 货品出入库-货品出库添加货品入出信息,并对其进行维护。图 4.10 货品出库信息4.1.10 货品出入库-库存查询查看库存信息图 4.11 查看库存信息
30、第 21 页 共 35 页4.2 主要功能程序的实现4.2.1 数据库连接的建立本系统在数据库连接方面,使用统一的连接数据库的方法,引入相关的 jar包之后,调用其中的类。通过 dbconfig.properties 配置文件读取数据库信息和登陆数据库帐户的用户名和密码,实现数据库的连接。具体的代码如下:dbconfig.properties 文件的内容如下:hibernate.dialect=org.hibernate.dialect.MySQLDialectvalidationQuery.sqlserver=SELECT 1jdbc.url.jeecg=jdbc:mysql:/localh
31、ost:3306/invoicing?useUnicode=truemessage = “货品表添加成功“;trytBStock.setTotalcount(“0“);tBGoodsService.save(tBGoods, tBStock);systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);catch(Exception e)e.printStackTrace();message = “货品表添加失败“;throw new BusinessException(e.getMessage
32、();j.setMsg(message);return j;public Serializable save(T entity, TBStockEntity tBStock) Serializable t = super.save(entity);tBStock.setGoodsid(t.toString();第 24 页 共 35 页super.save(tBStock);/执行新增操作配置的 sql增强this.doAddSql(TBGoodsEntity)entity);return t;/* 根据传入的实体持久化对象*/public Serializable save(T entity
33、) try Serializable id = getSession().save(entity);getSession().flush();if (logger.isDebugEnabled() logger.debug(“保存实体成功 ,“ + entity.getClass().getName();return id; catch (RuntimeException e) logger.error(“保存实体异常 “, e);throw e;第 25 页 共 35 页保存成功之后将新添加的数据以不刷新页面的效果展示到页面中,并且提示保存成功,如果保存失败则提示失败信息。4.2.3 货品录入相关页面货品内容在展示页面代码:货品添加页面代码:货品表第 28 页 共 35 页货品名称:货品名称货品类型:货品类型成本价:成本价