基于JavaWeb的超市商品采购管理系统设计与实现
2022-04-11袁明坤曾丽
袁明坤 曾丽
摘要:基于JavaWeb,采用MVC+三层架构和MySql数据库技术开发了超市商品采购管理系统。本系统实现了超市的订单管理、供应商管理、用户管理等功能。应用本系统可提高超市商品采购信息管理水平,提高超市管理者工作效率。文章从超市商品采购系统需求分析、系统框架、功能设计、数据库整体设计以及关键技术等方面阐述了超市订单系统的设计和实现过程。
关键词:JavaWeb;三层架构;MySQL数据库
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)05-0061-03
随着经济的发展,城乡街道小区涌现出众多超市。虽然中小型超市越来越普遍,但其管理方式仍以人工管理方式为主,其中产生的大量货物订单、供应商信息都以文档、表格、纸质的形式存储,不能实时更新核对,不利于长期的保存,超市的运行效率很低,为解决这一类问题,本超市商品采购管理系统将货物订单详情、供应商信息、员工信息进行一体化管理,以提高超市订单信息管理水平[1]。
1 系统需求分析
根据目前中小型超市存在问题以及城镇小型超市调研结果来看,主要的商品系统需求如下[2]:1)系统可将每次进货物品订单号、商品名称、价格、数量、进货日期、支付情况进行合理统计,并能进行实时的修改、添加或查询。2)系统可查询供应商产品描述,供应商名称、联系方式等,可区别化标识长期供应商和近期供应商,查看其主要产品以及质量。3)系统有一套完整的人员信息系统管理,可以添加新成员进系统,系统管理员可修改、删除员工的基本信息以及工作负责人方面的信息。
2 系统设计
2.1系统架构
在软件体系架构中,分层式结构必不可少,本系统采用三层架构模式,可以降低层与层之间的依赖性、相互之间高聚能、低耦合,有利于相同业务功能的复用[3]。通常将其划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。数据访问层实现数据持久注入数据库中,实现对数据的增删改,用户访问数据只能通过数据访问层,减少入口,提高其安全性;业务逻辑层接收前台所传递参数数据并接收数据访问层操作后的数据,最后将其返回给表示层进行展示;表示层和用户直接交互,直观、动态展示信息,其与业务逻辑层对接,在表示层中,本系统采用MVC设计模型,将网页信息或用户界面与用户请求划分。
2.2功能设计
根据系统需求分析,本系统功能设计为三个模块:订单业务模块、供应商管理模块、用户信息模块,使用本系统角色功能区域化分,用户角色划分为系统管理员、经理、员工,如图1所示系统功能设计。
1) 订单业务模块:此模块角色为经理与系统管理员可进行操作。角色可对新进货订单的商品种类、数量、价格、支付情况进行保存,可以实时验证出货情况。对于旧订单,可修改、删除、查询支付情况、供应商信息。查询功能可通过商品名称或关键词、支付情况、供应商名称来锁定,不同的查询结果也可作为文件下载到本地保存。
2) 供应商模块:此模块系统管理员、经理、员工都可进行操作。长期与经期供应商做出划分,可按供应商名称、货品类别、供应时间长短进行搜索,提供供应商公司名称、联系电话、生产商品类别、详细地址、传真编号。另对供应商的添加、信息修改、删除只能是系统管理员与经理。
3)用户管理模块:主要包含超市员工、经理、系统管理员的信息管理。实现用户信息创建、编辑、删除、查询和用户权限验证功能。系统登录时验证用户权限,不同用户有不同执行权限。系统管理员具有最大权限,其可创建经理、员工用户,也可对其进行修改、删除,实现订单业务块和供应商模块全部功能;经理对用户信息修改与删除需得到系统管理员的验证,可以下载不同员工信息到本地以便纸质档保存和公示,也可实现订单业务与供应商模块功能;超市员工可查询不同员工的基本信息,对于订单业务模块与供应商模块只可查询,没有过多操作。
2.3数据库设计
根据功能模块设计和图2所示ER模型,本系统表主要有:用户表、角色表、供应商表、订单表,商品表,具体所包含表及属性如下:
1) User表:用户编码(userCode),用户姓名(userName),登录密码(userPassword),性别(gender),出生日期(birthday),联系电话(phone),用户角色id(userRole),工作(job),地址(address),创建者(createdBy),创建日期(createdDate)。用户管理表,用户编码作为User表主键,用户角色id作为表外键,用户编码与登录密码是系统登录账号及密码,工作属性是员工和经理的具体职能,其他即为用户基本信息。
2) Role表:角色id(id),角色名稱(roleName),角色描述(describle)。角色表与用户表对应,呈现一个角色对应多个用户级联关系,角色id作为主键,角色描述属性描述具体职能。
3) Provider表:供应商id(id),公司名(proName),供应商描述(proDesc),负责人姓名(proCntact),标识(level),联系电话(proPhone),厂商地址(proAddress),传真(proFax),联系电话(phone),创建者id(createdBy),创建日期(createdDate)。供应商表,供应商id作为主键,供应商描述包括供应商主要商品,标识属性反应供应商合作时间长短。
4) Bill表:订单id(id),订单名称(productName),支付情况(isPayment),创建者id(createdBy),创建日期(createdDate),订单表,订单id作为主键,创建者id作为外键,支付情况属性作为订单查看以及后期与供应商交接保障,创建者id对应User表的用户编码。
5) Product表:商品id(id),名字(proName),库存(proStock)。商品表,商品id为主键。商品id用于标识不同商品,与供应商id一起作为对应联系表主键,与订单id一起作为采购联系表主键。
3 系统实现
3.1相关技术
对于整个超市商品采购管理系统,采用JavaWeb开发与实现[4]。前台页面采用Jsp、Js和Jquery技术,在请求之中采用HttpServlet技术;后台连接之中采用三层架构中的业务逻辑层与数据访问层,数据库连接使用JDBC接口,读取数据时使用JavaBean组件,数据库采用MySQL数据库。整个系统编写在IntelliJ IDEA中进行,使用Maven项目管理工具,并最终部署在轻量级开源Tomcat服务器上。
3.2系统登录
Tomcat服务器启动之后,在浏览器网址输入localhost:8080/order即可进入登录页面。用户首次使用时,可选择用户注册,在注册时输入正确邮箱地址获得注册验证码。注册成功后,返回登录页面输入正确用户名,密码以及验证码即可登录系统,在登录之后可对创建的用户详细信息进行修改,登录界面注册者选择角色时慎重,不同用户身份的系统功能权限不同。
登录页面之后,在功能列表中展示订单管理、供应商管理、用户管理、密码修改和退出系统,前三个对应功能设计三个需求。
3.3订单管理
订单管理界面首页如图3所示,直观地展示目前订单基本信息。订单的查询可通过商品名称、供应商、是否付款不同的关键词进行动态查询,没有选择约束即列出所有订单。在操作一栏中依次是查询订单详细信息、修改订单信息、删除订单。查询操作中可查看订单种类、数量、订单日期、支付情况,修改订单以及删除的操作只能是系统管理员以及经理权限用户可操作,在查询功能下可点击添加订单从而实时添加订单数目,对于查询后页面显示的订单信息可点击下载订单保存在本机。
3.4供应商管理
在供应商管理界面,可通过供应商编码不同长度进行模糊查询,按供应商的姓名也可进行查询,在其一行信息中标注了供应商合作时间长短。详细情况中列举了其公司名、负责人、联系电话、传真、主要产品描述;修改供应商时负责人姓名必须填写,联系电话必须格式正确,否则不能提交保存;若不是系统管理员,删除供应商不可执行并作出警告;添加供应商时,供应商编号会搜索数据库是否存在以便排除重复。
3.5用户管理
用户管理功能中,普通用户的创建大多数由系统管理员和经理登录系统创建,也可自行在登录界面注册创建,后期对其信息进行完善。登录用户可通过姓名关键字以及用户角色来查询用户,点击查询旁的下载信息即可下载用户详细信息至电脑,用户的修改与删除只有员工级别以上的权限可执行。用户登录密码只能是本端登录者自行一对一修改,不可跨越修改用户密码,修改密码时也需旧密码的验证通过。
三个功能的管理创建时都会自动获取当前登录者id、当前日期作为创建者id和创建日期;三个功能所查询到的信息使用分页的设计展示,采用到MySQL分页limit方法;对于市场的查询订单详细信息以及供应商信息做出了存储过程进行优化;为方便删除用户,创建触发器提前修改订单表对应的创建用户id;数据信息在进行修改删除时,开启MySQL事务机制来保障数据安全性;一个用户登录所设计Session持续时间为半小时,失效需重新登录。
4 系统测试
为保障该系统质量,系统的测试环节必不可少,除了要实现规定的功能以外,还要满足安全、兼容、负载性能下也能正常运行[5]。本文具体做出以下测试:
1)功能测试:针对功能测试,选择对订单查询与修改操作进行测试。经理登录系统后,在订单管理界面选择未支付情况搜索,返回一条对应订单,在数据库中查询得到数据一致;经理选择第一条BILL2021_001订单号进行信息修改,删除名称为“护发素”的商品,保存之后返回界面查看订单与修改一致。
2)安全测试:针对安全测试,首先直接访问主页界面,系统弹出并未登录的信息对其做出有效拦截;对于订单、供应商、用户数据修改和删除时,模拟中途网络出现故障,这时查看MySQL数据库,数据并未发生改变。
3)兼容测试:对于系统编写完成后,分别将其部署在本地系统上与云服务器上Linux操作系统上。测试之后,本端可通过本机网络分配IP地址进行访问,远端服务器可通过其分配的IP地址进行访问。
4)负载测试:本次测试中,10个用户访问系统进行一系列操作。在整个的测试过程中,系统并未出现闪退、未响应、页面加载错误等问题,在Windows操作系统下的系统出现延迟高,在远程服务器上良好。
对于整个系统测试,虽然在超高负载下出现延迟高等问题,后续需做出调整,但也达到了中小型超市的日常使用要求。
5 结束语
本系统流畅地进行了每一个功能的使用,直观地展示订单信息、供应商信息、用户信息,对于中小型超市商品采购的统一管理、合理分配起到了一定效果,而采用的MVC+三层架构也便于后期业务的维护以及更多功能的添加。
参考文献:
[1] 秦宇伟.基于B/S的连锁超市管理系统的设计与实现[J].电脑学习,2011,1(2):17-18.
[2] 李佳乐,苏金梦,刘佳琪,等.SQL2000数据库和VS2014平台的超市管理系统设计[J].单片机与嵌入式系统应用,2019,19(11):65-68,74.
[3] 陈敏.浅析三层架构的组成及优势[J].信息通信,2020,33(1):147-148.
[4] 刘文文.基于JSP的超市客户管理系统设计[J].信息与电脑(理论版),2018(7):75-76.
[5] 谭李孟清,张莹,王玉林.基于软件性能的系统测试[J].软件,2020,41(11):1-5,41.
【通联编辑:梁书】
收稿日期:2021-08-25
作者简介:袁明坤(2001—),男 ,四川成都人,本科,研究方向為大数据;曾丽(1981—),女,四川宜宾人,通信作者,副教授,硕士,研究方向为软件工程,大数据。