摘 要
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息处理系统的环境计算机最大的好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提库作为一总货品资源的集散地,货品的种类繁多,包含很多的信息数据的管理据调查得知,以前仓库进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,对于货品的出入库情况的统计和核实等往往采用对账本的人工检查,对管理者的管理权限等不受约束,任何人都可查看,这样容易引起资料外泄另外,数据信息处理工作量大容易出错,由于数据繁多,容易丢失,且不易查找总的来说,缺乏系统、规范的信息管理手段.而且,一般的存储情况是记录在账本上的,仓库的工作人员和管理员也只是当时记得比较清楚,时间一长,如果再要进行查询,就得在众多的资料中翻阅查找了,这样造成费时、费力,如要对很长时间以前的货品进行更改就更加困难了.因此,很有必要建立一个仓库管理系统,使货品管理工作规范化,系统化,程序化提高信息处理的速度和准确性。
本文首先分析了仓库系统的背景,明确了本文的研究思路和方向,然后,按照软件工程项目的要求,进行了该项目的业务需求分析,并通过业务流程整理和问题分析,整理出系统的需求,根据分析结果进行了系统的建模,在需求分析的基础上,进行了系统的设,包括软件应用架构设计、网络架构设计以及业务逻辑设计,其间,以面向对象的理论为基础,运用PP进行系统的相关设计,在系统分析和设计的基础上,进行了系统的数据库设计,包括数据库建模E-R图和数据库逻辑设计,最后,对系统进行了开发和运行测试,开发了一个用户交互性能良好、功能实用、能满足当前需求以及可扩展的仓库系统,对开发的系统进行了相关的测试。
在本文的研究中,在系统的架构设计方面以及用户交互体验方面做了较多的工作,目标是开发出一个拓展性强、代码重用度高的系统,以便将来的拓展和维护,同时,提高系统的实用性及易用性,收到了比较好的效果。本文主要开发的部分包括有:仓库后台管理系统。
本系统运用了Spring,SpringBoot,SSM流行框架技术来对业务逻辑和数据持久化操作,在划分模块及确定各模块所需实现的功能,各模块之间的功能的协调和信息沟通,模块设计结束后的整合。此系统流程相对清晰,功能上主要完成对仓库的管理和各种操作,同时也实现了对系统管理员的增删操作。通过后期系统的不断完善和改造,优化界面并且修改系统漏洞,基本实现了各个功能模块。
【关键词】仓库管理系统,jsp编程技术,mysql数据库,SSM,Springboot
The current era is a rapidly developing information era, and information processing is indispensable in all walks of life. This is precisely the environment where computers are widely used in information processing systems. The greatest advantage of computers is that they can be used for information management and information control, not only improving work efficiency, but also greatly improving their security. Especially for complex information management, computers can give full play to their advantages. Computer information management is closely related to the development of information management systems. The development of the system is to manage the advance warehouse as a collection and distribution center for a total of goods resources. There are a wide variety of goods, including a lot of information data management. According to the survey, the previous methods of information management in warehouses were mainly based on manual processing of paper media such as text and tables, For the statistics and verification of goods' receipt and delivery, manual inspection of the account book is often used, and the management authority of the manager is not constrained. Anyone can view it, which can easily lead to data leakage. In addition, the workload of data and information processing is large and prone to errors. Due to the large amount of data, it is easy to lose, and difficult to find. In general, there is a lack of systematic and standardized information management methods, The general storage situation is recorded on an account book, and the warehouse staff and administrators only remember it clearly at the time. Over time, if further inquiries are required, they will have to search through a large number of materials, which can be time-consuming and laborious. It is even more difficult to make changes to goods that were stored a long time ago. Therefore, it is necessary to establish a warehouse management system to standardize and systematize the management of goods, Programming improves the speed and accuracy of information processing.
This article first analyzes the background of the warehouse system and clarifies the research ideas and directions of this article. Then, according to the requirements of the software engineering project, it conducts a business requirements analysis of the project, and collates the system requirements through business process organization and problem analysis. Based on the analysis results, the system is modeled. On the basis of the requirements analysis, the system is designed, including software application architecture design Network architecture design and business logic design, during which, based on object-oriented theory, the system was designed using PP. On the basis of system analysis and design, the system database design was carried out, including database modeling E-R diagram and database logic design. Finally, the system was developed and tested, and a user interaction system with good functionality and practicality was developed A scalable warehouse system that can meet current requirements has been tested.
In this study, a lot of work has been done in the architecture design and user interaction experience of the system, with the goal of developing a system with strong scalability and high code reuse for future expansion and maintenance. At the same time, improving the practicality and ease of use of the system has received relatively good results. The main development part of this article includes: warehouse background management system.
This system uses Spring, SpringBoot, and SSM popular framework technologies to perform business logic and data persistence operations, partition modules, determine the functions required to be implemented by each module, coordinate the functions and communicate information between each module, and integrate after the completion of module design. The process of this system is relatively clear. Functionally, it mainly completes warehouse management and various operations, as well as the addition and deletion of system administrators. Through continuous improvement and transformation of the later system, optimizing the interface and modifying system vulnerabilities, various functional modules have been basically implemented.
[Keywords] Warehouse management system, jsp programming technology, mysql database, SSM, Springboot.
目 录
摘 要
Abstract
第1章 绪论
1.1 课题的目的及意义
1.1.1 课题的目的
1.2 研究现状
第2章 系统分析
2.1 可行性分析
2.1.1 技术可行性
2.1.2 经济可行性
2.2 系统需求
2.2.1 用户需求
2.2.3 系统功能分析
2.2.4 功能描述
2.3 开发工具介绍
2.3.1 J2SE平台
2.3.2 IDEA简介
2.3.3 SSM简介
2.3.4 jsp嵌入式脚本
2.3.5 SpringBoot
2.3.5 数据库选型
2.4 本章小结
第3章 总体设计
3.1 系统功能模块设计
3.2 数据库设计
3.2.1 设计依据
3.2.2 数据库的概念结构设计
3.2.3 数据库的逻辑结构设计
3.3 本章小结
第4章 详细设计
4.1 用户各功能模块
4.1.2基础管理功能模块的实现
4.1.3仓库管理模块
4.1.4系统管理模块
4.3 本章小结
第5章 系统测试
5.1 系统测试的基本原则
5.2 软件测试方法
5.3 系统测试用例
5.4 本章小结
结 论
致 谢
参考文献
附 录 1
附 录 2
附 录 3
随着我国经济的飞速发展,各种类型规模的公司企业讯速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说随着企业规模的不断护大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。
面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。
如今随着现代化信息技术的迅猛发展和普及,仓库管理的生存和竞争环境发生了根本的变化。游乐园要想在市场竞争中立于不败之地,必须进行信息化建设,所以信息化管理就成为仓库管理获取竞争优势的关键所在。仓库的信息管理技术是保证产品项目内、外部信息在仓库的信息在行业中准确、快捷的流动,为决策提供依据,其关键是实现设计信息、生产信息、管理信息的有效整合。仓库管理系统能够降低仓库管理的成本,提仓库管理的整体管理水平,获得更大的利润。为此,在选题过程中,我选择了仓库管理系统设计题目,依靠现代化的计算机信息处理技术来管理仓库,使系统具有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等特点,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出仓库的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快仓库管理效率。步入数字化时代,有巨大的数据信息等待着加工处理和传输,仓库管理系统本就需要有一个强大的数据库支持,这就需要对数据库进行进一步的开发和利用,而对仓库的进销存管理,信息的存储和处理也显的尤其重要。要适应如今激烈的市场竞争,就需要有高效的处理方式和管理方法,因此加快仓库管理的信息化进程是必不可少的。
目前,当前学术界跟产业界的共识是:在注重软件程技术研究的同时应注重软件过程的研究。软件开发单位不仅需要技术创新,更需要将其过程改善放在首位。这种改善和技术的紧密结合才是完善的软件开发解决方案。进入信息化时代依赖,软件过程研究以及企业过程改善成为热潮,和软件工程研究以及企业技术创新都受到国家高度重视。
现代企业的物流系统日趋复杂,高效的物流系统要求有效地对企业的库存进行管理。目前的仓库管理系统一般技术比较落后、性能较差且很不完备,人工干涉多,操作使用不方便,有的还故障率高且不实用。现阶段仓库管理的特点是信息处理量特别大,所管理的物资设备种类繁多,而且入库单、出库单、需求单等单据的发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常出现信息的重复传递等问题。仓库管理部门越来越需要一套低成本、高性能、方便使用、功能完善的综合仓库管理信息系统。而现在计算机技术、网络技术的成熟和发展,为仓库管理自动化提供了强有力的技术支持。
随着信息化的快速发展,以及激烈的市场竞争,各仓库管理行业也将在信息化上下功夫,以高效率、低成本立足市场,获得更多的利润。1.3 本课题主要研究内容
本文采用理论联系实际的方法,指出系统开发必须符合企业的发展方向和经营目标,从企业的角度优化资源和重组业务,并详尽分析仓储企业仓库管理信息系统的业务流程、系统需求、功能以及所涉及的硬件与软件,从提高仓库管理的角度出发,来说明通过仓库管理系统的构建可以解决仓储型物流企业在信息发展过程中所面临的问题。论文阐述仓储企业在我国的发展状况,引出仓储企业在信息化发展过程中有待解决的问题,通过对国内外相关研究和实践成果的总结分析来阐述问题的解决思路。
(1)到多个企业进行实地参观考察,了解现有公司仓库管理的发展现状和管理人员的专业技术水平以及仓库设施的发展状况。
(2)查阅仓库管理系统设计的相关资料,充分了解现代企业仓库管理的技术发展现状。
(3)查阅国内外文献资料,了解专业人员对仓库管理的研究成果,对比国内与国外仓库管理的相同点和不同点,特别是找出我国大多数小型仓库管理需要改进的地方。
(4)阅读有关java的资料,设计出可行的程序代码,并进行测试运行。
部分功能图展示
部分代码的实现 需要的 私信
package com.my.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.my.bean.Customer;
import com.my.common.DataGridView;
import com.my.common.ResultObj;
import com.my.service.CustomerService;
import com.my.vo.CustomerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
*
* 前端控制器
*
*/
@RestController
@RequestMapping("/customer")
public class CustomerController {
@Resource
private CustomerService customerService;
@RequestMapping("loadAllCustomer")
public DataGridView loadAllProvider(CustomerVo customerVo){
//1.声明一个分页page对象
IPage page = new Page(customerVo.getPage(),customerVo.getLimit());
//2.声明一个queryWrapper
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq(null != customerVo.getCustomerId() && customerVo.getCustomerId()!=0,"customer_id",customerVo.getCustomerId());
queryWrapper.like(StringUtils.isNotBlank(customerVo.getManager()),"manager",customerVo.getManager());
queryWrapper.like(StringUtils.isNotBlank(customerVo.getTalePhone()),"tale_phone",customerVo.getTalePhone());
customerService.page(page,queryWrapper);
// System.out.println("page.getTotal() = " + page.getTotal());
// System.out.println("page.getRecords() = " + page.getRecords());
// System.out.println("page.getSize() = " + page.getSize());
return new DataGridView(page.getTotal(),page.getRecords());
}
/**
* 添加一个供应商
* @param customerVo
* @return
*/
@RequestMapping("addCustomer")
public ResultObj addCustomer(CustomerVo customerVo){
try {
customerService.save(customerVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* 修改一个供应商
* @param customerVo
* @return
*/
@RequestMapping("updateCustomer")
public ResultObj updateCustomer(CustomerVo customerVo){
try {
customerService.updateById(customerVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
* 删除一个供应商
* @param id
* @return
*/
@RequestMapping("deleteCustomer")
public ResultObj deleteCutomer(Integer id){
try {
customerService.removeById(id);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
//提供下拉框
@RequestMapping("loadAllCustomerForSelect")
public DataGridView loadAllCutomerForSelect(){
QueryWrapper queryWrapper = new QueryWrapper();
List list = customerService.list(queryWrapper);
return new DataGridView(list);
}
}
package com.my.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.my.bean.Goods;
import com.my.bean.Provider;
import com.my.common.DataGridView;
import com.my.common.ResultObj;
import com.my.service.GoodsService;
import com.my.service.ProviderService;
import com.my.vo.GoodsVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
*
* 前端控制器
*
*/
@RestController
@RequestMapping("/goods")
public class GoodsController {
@Resource
private GoodsService goodsService;
@Resource
private ProviderService providerService;
@RequestMapping("loadAllGoods")
public DataGridView loadAllGoods(GoodsVo goodsVo){
IPage page = new Page<>(goodsVo.getPage(),goodsVo.getLimit());
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getName()),"name",goodsVo.getName());
queryWrapper.eq(goodsVo.getPrice()!=null,"price",goodsVo.getPrice());
queryWrapper.eq(null != goodsVo.getProviderId() && goodsVo.getProviderId()!=0,"provider_id",goodsVo.getProviderId());
goodsService.page(page,queryWrapper);
List records = page.getRecords();
for (Goods goods : records) {
Provider provider = providerService.getById(goods.getProviderId());
if (null!=provider){
goods.setProviderName(provider.getName());
goods.setAddress(provider.getAddress());
}
}
return new DataGridView(page.getTotal(),page.getRecords());
}
@RequestMapping("addGoods")
public ResultObj addGoods(GoodsVo goodsVo){
try {
goodsService.save(goodsVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
@RequestMapping("updateGoods")
public ResultObj updateGoods(GoodsVo goodsVo){
try {
goodsService.updateById(goodsVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
@RequestMapping("deleteGoods")
public ResultObj deleteGoods(Integer id){
try {
goodsService.removeById(id);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}