源码及资料:
http://www.byamd.xyz/sss.html
1 系统需求分析
超市订单管理系统是一个专为连锁店、超市等商业场所提供订单管理平台的系统。该系统的目标是建立一个订单管理平台,为需要合理规划超市供应链、供应商以及工作人员提供的便捷的平台。该系统的主要业务需求包括记录并维护某超市的供应商信息,以及该超市与供应商之间的交易订单信息,包括三种角色,系统管理员经理,普通员工。
1.1 系统功能分析
本系统主要的功能是实现超市订单管理功能,以便为超市、连锁店提供以及其他负责人提供订单详情、联系方式等,系统的主要功能有以下五个方面:
(1)登录/注销:
管理员可以在网站上登录浏览,离开时注销并退出。
(2)订单管理:
管理员可以浏览所有订单信息,并且通过点击查看了解订单详情信息。
(3)供应商管理:
管理员可以在网站浏览所有供应商信息,并在在与其他供应商达成合作之后,添加相关供应商信息,并且通过点击查看了解他们的联系方式等。
(4)用户管理:
管理员可以管理所有超市员工用户,对用户进行增删改查,对于离职或其他原因的未工作用户给予注销管理。
(5)密码修改:
管理员可对自己的账号密码进行修改,填写对应之前的正确密码以及新密码之后,即完成相关修改密码操作。
(6)搜索功能:
在以上管理界面中,均允许了管理员根据关键字进行搜索,要求搜索框中输入的字段必须完全包含在物品名称中,否则无法查询。
图1.1 超市订单管理系统
1.2 系统功能需求
根据系统功能要求,该超市订单管理系统以管理员为中心的用户角色,可以将系统分解成几个模块来分别设计应用程序界面,如图 1.1所示。
图1.2 用户功能模块结构图
1.3 系统性能需求
超市订单管理系统的开发是在Window10平台上,以SSM为架构,采用MySQL 作为数据库管理系统管理后台数据库。本系统是超市信息管理建设中必不可少的一部分,它实现了现代管理信息系统的大部分功能需要。使用本系统可以使超市管理更加方便快捷,合理的页面设计也使得这个用户充分享受到基于Internet管理信息系统的优越。本系统开发说明:
· 功能完备
在开发初期,查看了大量关于电子商务,管理信息系统,J2EE等方面的资料,同时借鉴了很多其他电子商务网站和管理信息的流程。经过总结,确定了满足需求分析的基本模块。系统总体设计上实现了整个系统模块的划分,系统主要包含5大模块,分别是:订单管理信息,供应商管理,用户管理,修改密码,登陆退出系统,基本上实现了综合管理系统的所有功能。
· 界面友好
系统用户登陆到管理页面后,每页有导航和引领的作用。系统具有自适应的能力,同时导航条方便快捷的引导用户进行各种合理的操作。
· 管理科学
本系统一开始就从管理学的角度做出了详细细致的考虑,后来有参考了电子商务管理等,最后才做出了系统总体设计,因此可以讲该系统是较为科学的。
系统的性能需求主要表现在数据库中的各个表需要频繁地被插入、删除以及更新。对于用户来说,系统地响应时间不宜太长,否则会降低用户体验。为此要求我们建立良好的表结构,加上足够的存储空间以及硬件性能。
2 可行性分析
2.1 研究前提
随着我国经济情况的日新月异,飞速发展,涌现出许许多多的超市和便利店。越来越多的人喜欢到超市购物,超市里销售的商品也呈现出多种多样的变化趋势。我们开发一个超市订单管理系统,它可以对仓储各环节实施全过程控制管理,对整个进货、退货、盘点等各个环节的规范化作业,控制整个过程的正常运行。去掉了手工书写票据和送到机房输入的步骤,解决库房信息陈旧滞后的弊病,方便了仓库管理人员对物品的放置和调配,提高了工作效率。
该系统容易被接受,具有简单易学性,便于管理等功能,是对超市订单管理的一种有效工具。
2.2 设计要求
2.2.1 安全性
超市订单管理增强对产品规范的审计,重点确定该项目中需要审计的产品。买家只能针对卖家允许公开的信息进行查阅。买家只享受对自己账号内数据的查阅权,与定后处理权,订货支付权,申请退货权,不允许偷窥其他人。卖家只能针对买家允许公开的信息进行查阅。卖家只享受对自己账号内数据的查阅权,发货权,退款相应处理权,不允许偷窥其他人。
2.2.2 系统性能
管理员登录查看超市供应商与超市员工用户管理,可以进行增、删、改、查等操作。超市订单系统可以使超市的管理趋于正规化、现代化和系统化。本项目的产品可以达到以下目标:
(1)提高工作效率,减少返工。
(2)业务流程的流水线化。
(3)符合相关标准和规则。
(4)与目前的应用产品相比较,提高了可用性或减少了失效程度。
2.2.3 可扩展性
所有信息呈现,操作完全由打开的网页呈现并完成。本系统所占有的是超市市场,它追求的是简单、易学、易用,能够更好地解决管理人员的负担,能够辅助超市有效的管理物品。对于订单管理系统的用户,可满足对订单管理的需求,且此种需求被接受并且满足,其系统便可以推广。
3 数据库设计
3.1 数据库需求分析
经过对超市管理系统的调查分析,得出用户的需求大致如下:
(1)管理员可以在系统中对订单、供应商以及用户进行增、删、改、查的处理。
(2)管理员需要输入账号密码登录,并且可以增添新的管理员。
如下是利用数据流图方法对数据库做需求分析:
第一步:由用户的需求,可以得到顶层数据流图如图3.1.1所示。
图3.1.1 超市订单管理系统的顶层数据流图
第二步:超市订单管理系统的第1层数据流图如图3.1.2所示。
图3.1.2 超市订单管理系统的第1层数据流图
第三步:超市订单管理系统的第2层数据库流图——订单管理的细化数据流图如图3.1.3所示。
图3.1.3 超市订单管理系统的第2层数据库流图——订单管理的细化数据流图
第四步:超市订单管理系统的第2层数据流库——供应商管理的细化数据流图如图3.1.4所示。
图3.1.4 超市订单管理系统的第2层数据库流图——供应商管理的细化数据流图
第五步超市订单管理系统的第2层数据流库——用户管理的细化数据流图如图3.1.5所示。
图3.1.5 超市订单管理系统的第2层数据库流图——用户管理的细化数据流图
根据如上的数据流程图,可以列出以下记录超市订单管理所需的数据项和数据结构:
·管理员:管理员ID、管理员姓名、管理员密码、管理员性别、管理员角色、管理员出生日期、管理员电话、管理员住址。
·订单:订单编码、商品名称、供应商名称、订单金额、是否付款。
·供应商:供应商编码、供应商名称、联系人、联系电话、微信。
3.2 数据库概念结构设计
本系统一共有用户、供应商、订单、角色、地址这五个基本实体。
管理员可以对应多个订单,而一个订单只能对应于一个管理员。管理员可以管理多个供应商,而一个供应商只能对应于一个管理员。一个供应商可以对应多条订单,但一条订单只能对应于一个供应商。此外,有一个用户对应一个角色,一个角色对应多个用户;一个地址对应多个订单,一个订单对应一个地址。数据库表之间的关系如下:
图3.2.1 数据库E-R图分析
(1)用户:主键ID、用户编码、用户名称、用户密码、性别、出生日期、手机、地址、用户角色、创建者、创建时间、更新者、更新时间、用户头像、工作照。
(2)账单:订单编号、订单编码、商品名称、商品描述、商品单位、商品数量、商品总额、是否支付、创建者、创建时间、更新者、更新时间、供应商ID。
(3)供应商:供应商ID、供货商编码、供货商名称、供应商详细描述、供应商联系人、联系电话、地址、微信、创建者、创建时间、更新时间、更新者、营业执照、组织机构代码证。
(4)地址:主键ID、联系人姓名、收货地址明细、邮编、联系人电话、创建者、创建日期、修改者、修改时间、用户ID。
(5)角色:角色编号、角色编码、角色名称、创建者、创建时间、修改者、修改时间。
3.3 数据库逻辑结构设计
将概念结构设计中的各个模型转化为DBMS支持的表结构,同时保持不会出现插入异常、删除异常和修改异常,表结构应该做到符合3NF。根据系统 E-R 图,需要设计4个数据表来存放信息。在本系统中,一共有五个实体,实体转化为数据库模型为如下所示:
1、一对多联系转化为一个关系模式
用户–订单(用户编号,订单编号)
供货商–订单(供货商编号,订单编号)
用户–身份(用户编号,身份编号)
用户–地址(用户编号)
2、利用以上关系模式得到的所有数据表如下所示:
(1)用户表(smbms_user):
·数据项:主键ID、用户编码、用户名称、用户密码、性别、出生日期、手机、地址、用户角色、创建者、创建时间、更新者、更新时间、用户头像、工作照。
·说明:用户ID是唯一的用户标识,使此表的主键。如表3.3.1所示。
表3.3.1 用户表
列名 | 数据类型 | 数据长度 | 可否为空 | 备注 |
---|---|---|---|---|
Id | bigint | 20 | Not null | 主键ID |
userCode | varchar | 15 | Not null | 用户编码 |
userName | varchar | 15 | Not null | 用户名称 |
userPassword | varchar | 15 | Not null | 用户密码 |
gender | int | 10 | 性别 | |
birthday | date | 出生日期 | ||
phone | varchar | 15 | 手机 | |
address | varchar | 30 | 地址 | |
userRole | int | 10 | 用户角色 | |
createdBy | bigint | 20 | 创建者 | |
creationDate | datetime | 创建时间 | ||
modifyBy | bigint | 20 | 更新者 | |
modifyDate | datetime | 更新时间 | ||
idPicPath | varchar | 300 | 用户头像 | |
workPicPath | varchar | 300 | 工作照 |
(2)供应商表(smbms_provider):
·数据项:供应商ID、供货商编码、供货商名称、供应商详细描述、供应商联系人、联系电话、地址、微信、创建者、创建时间、更新时间、更新者、营业执照、组织机构代码证。
·说明:这张表标识的是超市管理信息系统中商品供应商的信息列表,供应商ID是该表的主键。
·编号方法:商品供应商ID采用自动生成方式,如表3.3.2所示。
表3.3.2 供货商表
列名 | 数据类型 | 数据长度 | 可否为空 | 备注 |
---|---|---|---|---|
Id | Bigint | 20 | Not null | 供货商ID(主键) |
proCode | Varchar | 20 | Not null | 供货商编码 |
proName | varchar | 20 | Not null | 供货商名称 |
ProDesc | varchar | 50 | 供应商详细描述 | |
proContact | varchar | 20 | Not null | 供货商联系人 |
proPhone | Varchar | 20 | Not null | 联系电话 |
ProAddress | Varchar | 50 | Not null | 供货商地址 |
proFax | varchar | 20 | 微信 | |
CreateBy | bigint | 20 | 创建者 | |
CreatationDate | datetime | 创建时间 | ||
modifyDate | datetime | 更新时间 | ||
modifyBy | bigint | 20 | 更新者 | |
companyLicPicPath | varchar | 300 | 营业执照 | |
orgCodePicPath | varchar | 300 | 组织机构代码证 |
(3)订单表(smbms_bill):
·数据项:订单编号、订单编码、商品名称、商品描述、商品单位、商品数量、商品总额、是否支付、创建者、创建时间、更新者、更新时间、供应商ID。
·说明:这张表标识的是超市管理信息系统订单信息列表,订单ID是该表的主键。
·编号方法:订单ID采用自动生成方式,供应商ID与供应商表中供应商ID一一对应,如表3.3.3所示。
表3.3.3 订单表
列名 | 数据类型 | 数据长度 | 可否为空 | 备注 |
---|---|---|---|---|
Id | bigint | 20 | Not null | 订单ID(主键) |
billCode | varchar | 20 | Not null | 订单编码 |
ProductName | Varchar | 20 | Not null | 商品名称 |
ProductDescent | Varchar | 50 | Not null | 商品描述 |
ProductUnit | Varchar | 10 | Not null | 商品单位 |
ProductCount | Decimal | 20,2 | Not null | 商品数量 |
totalPrice | Decimal | 20,2 | Not null | 商品总额 |
isPayment | int | 10 | Not null | 是否支付 |
createdBy | bigint | 20 | 创建者 | |
creationDate | Datetime | 创建时间 | ||
modifyBy | bigint | 20 | 更新者 | |
modifyDate | datetime | 更新时间 | ||
providerID | Int | 20 | 供应商ID |
(4)身份表(smbms_role):
·数据项:角色编号、角色编码、角色名称、创建者、创建时间、修改者、修改时间。
·说明:这张表标识的是超市订单管理信息系统中用户身份列表,身份编号是该表的主键。
·编号方法:用户身份编号与用户表中的员工身份编号一一对应,如表3.3.4所示。
表3.3.4 身份