食品库房管理流程,食品类仓库管理方法
00-1010一、项目介绍二、环境介绍三、系统展示3.1系统功能模块设计3.1.1登录模块3.1.2客户管理模块3.1.3供应商管理功能3.1.4商品管理模块3.1.5商品采购管理模块3.1.6商品退货信息查询模块四、核心代码展示5、项目总结
00-1010本仓库管理系统是经过调查研究开发设计的,主要为商家提供商品和货物的进销存的信息化管理,使商家在当今激烈的竞争中占据一定的优势和商机,通过信息技术的应用,减少库存,提高周转率,降低成本,增加利润。
仓库管理系统的设计和开发基于Java语言,并使用通用的Springboot框架技术集成其他第三方框架。Layui用于页面开发和首页布局,MySQL5.7数据库用于数据存储。综合这些技术和工具,开发了一个完整的仓库管理系统。
该系统的开发实现了特定的和普遍的适用性。经过走访和调研,获得了大部分商家的基本功能需求,然后进行了提取和整合,开发实现了这个仓库管理系统。具有一定的社会普及性,对整个社会的商业化具有广泛而积极的意义。
00-1010区域设置:Java: jdk1.8
数据库:Mysql:
服务器:Tomcat: tomcat8.5.31
开发工具:IDEA还是eclipse
仓库管理系统采用Java编程语言。近年来,Java的使用率一直排在计算机语言的前三位;作为开发工具的IntelliIdea。基于Spring Boot My Batis MySQL Shiro HTML Layui的结合,开发了一套功能齐全、界面美观、使用方便的仓库管理系统,使仓库管理员对货物数据的管理更加简单、到位。技术能够满足仓库管理系统的开发、测试和部署。综上所述,这在技术层面是可行的。
目录
一,项目简介
00-1010系统操作员在此登录页面输入用户相关账户信息,并提交给后台程序。收到账号和密码后,后台程序会进行验证。验证后会跳转到系统后台管理界面,实现相应的管理操作。登录界面如图5-1所示。
图5-1登录页面UI界面
如果输入的账户信息验证失败,系统会提示相应的信息,如下图5-2所示。
图5-2登录失败提示UI界面
00-1010操作员登录后台,在左侧选择客户管理,对购物客户进行管理。如图5-3、5-4、5-5、5-6和5-7所示。
图5-3会员管理UI界面
图5-4成员修改UI界面
图5-5成员添加UI界面
00-1010操作员登录后台,选择左侧供应商管理,管理贸易公司的供应商信息。如图5-6所示。
图5-6供应商管理UI界面
00-1010操作员登录后台,在左侧选择商品管理,对商品信息进行管理。如图5-7所示。
图5-7商品管理UI界面
00-1010操作员登录后台,在左侧选择商品管理,进行商品的相关管理操作。如图5-8所示。
图5-8商品信息管理UI界面
00-1010操作员登录后台,在左侧选择商品退货信息管理,对退货进行管理。如图5-9所示。
图5-9退货管理UI界面
二,环境介绍
package com.company . stock . bus . con
troller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("bus")public class BusinessController { /** * 跳转到客户管理页面 * @return */ @RequestMapping("toCustomerManager") public String toCustomerManager(){ return "business/customer/customerManager"; } /** * 跳转到供应商管理页面 * @return */ @RequestMapping("toProviderManager") public String toProviderManager(){ return "business/provider/providerManager"; } /** * 跳转到商品管理页面 * @return */ @RequestMapping("toGoodsManager") public String toGoodsManager(){ return "business/goods/goodsManager"; } /** * 跳转到进货管理页面 * @return */ @RequestMapping("toInportManager") public String toInportManager(){ return "business/inport/inportManager"; } /** * 跳转到退货管理页面 * @return */ @RequestMapping("toOutportManager") public String toOutportManager(){ return "business/outport/outportManager"; } /** * 跳转到商品销售管理页面 * @return */ @RequestMapping("toSalesManager") public String toSalesManager(){ return "business/sales/salesManager"; } /** * 跳转到商品销售管理页面 * @return */ @RequestMapping("toSalesbackManager") public String toSalesbackManager(){ return "business/salesback/salesbackManager"; }}
package com.company.stock.bus.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.company.stock.bus.service.ICustomerService;import com.company.stock.sys.common.Constast;import com.company.stock.sys.common.DataGridView;import com.company.stock.sys.common.ResultObj;import com.company.stock.bus.entity.Customer;import com.company.stock.bus.vo.CustomerVo;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.io.Serializable;import java.util.ArrayList;import java.util.Collection;import java.util.List;@RestController@RequestMapping("/customer")public class CustomerController { @Autowired private ICustomerService customerService; /** * 查询所有的客户 * @param customerVo * @return */ @RequestMapping("loadAllCustomer") public DataGridView loadAllCustomer(CustomerVo customerVo){ //1.声明一个分页page对象 IPage<Customer> page = new Page(customerVo.getPage(),customerVo.getLimit()); //2.声明一个queryWrapper QueryWrapper<Customer> queryWrapper = new QueryWrapper(); queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()),"customername",customerVo.getCustomername()); queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionpersion()),"connectionpersion",customerVo.getConnectionpersion()); queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()),"phone",customerVo.getPhone()); customerService.page(page,queryWrapper); 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 客户的ID * @return */ @RequestMapping("deleteCustomer") public ResultObj deleteCustomer(Integer id){ try { customerService.removeById(id); return ResultObj.DELETE_SUCCESS; } catch (Exception e) { e.printStackTrace(); return ResultObj.DELETE_ERROR; } } /** * 批量删除客户 * @param customerVo 选中的客户 * @return */ @RequestMapping("batchDeleteCustomer") public ResultObj batchDeleteCustomer(CustomerVo customerVo){ try { Collection<Serializable> idList = new ArrayList<Serializable>(); for (Integer id : customerVo.getIds()) { idList.add(id); } customerService.removeByIds(idList); return ResultObj.DELETE_SUCCESS; } catch (Exception e) { e.printStackTrace(); return ResultObj.DELETE_ERROR; } } /** * 加载所有客户的下拉列表 * @return */ @RequestMapping("loadAllCustomerForSelect") public DataGridView loadAllCustomerForSelect(){ QueryWrapper<Customer> queryWrapper = new QueryWrapper<Customer>(); queryWrapper.eq("available", Constast.AVAILABLE_TRUE); List<Customer> list = customerService.list(queryWrapper); return new DataGridView(list); }}
package com.company.stock.bus.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.company.stock.bus.service.IGoodsService;import com.company.stock.bus.service.IProviderService;import com.company.stock.sys.common.AppFileUtils;import com.company.stock.sys.common.Constast;import com.company.stock.sys.common.DataGridView;import com.company.stock.sys.common.ResultObj;import com.company.stock.bus.entity.Goods;import com.company.stock.bus.entity.Provider;import com.company.stock.bus.vo.GoodsVo;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController@RequestMapping("/goods")public class GoodsController { @Autowired private IGoodsService goodsService; @Autowired private IProviderService providerService; /** * 查询商品 * @param goodsVo * @return */ @RequestMapping("loadAllGoods") public DataGridView loadAllGoods(GoodsVo goodsVo){ IPage<Goods> page = new Page<>(goodsVo.getPage(),goodsVo.getLimit()); QueryWrapper<Goods> queryWrapper = new QueryWrapper(); queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,"providerid",goodsVo.getProviderid()); queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()),"goodsname",goodsVo.getGoodsname()); queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()),"productcode",goodsVo.getProductcode()); queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()),"promitcode",goodsVo.getPromitcode()); queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()),"description",goodsVo.getDescription()); queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()),"size",goodsVo.getSize()); queryWrapper.orderByDesc("id"); goodsService.page(page,queryWrapper); List<Goods> records = page.getRecords(); for (Goods goods : records) { Provider provider = providerService.getById(goods.getProviderid()); if (null!=provider){ goods.setProvidername(provider.getProvidername()); } } return new DataGridView(page.getTotal(),page.getRecords()); } /** * 添加商品 * @param goodsVo * @return */ @RequestMapping("addGoods") public ResultObj addGoods(GoodsVo goodsVo){ try { if (goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().endsWith("_temp")){ String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg()); goodsVo.setGoodsimg(newName); } goodsService.save(goodsVo); return ResultObj.ADD_SUCCESS; } catch (Exception e) { e.printStackTrace(); return ResultObj.ADD_ERROR; } } /** * 修改商品 * @param goodsVo * @return */ @RequestMapping("updateGoods") public ResultObj updateGoods(GoodsVo goodsVo){ try { //商品图片不是默认图片 if (!(goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().equals(Constast.DEFAULT_IMG))){ if (goodsVo.getGoodsimg().endsWith("_temp")){ String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg()); goodsVo.setGoodsimg(newName); //删除原先的图片 String oldPath = goodsService.getById(goodsVo.getId()).getGoodsimg(); AppFileUtils.removeFileByPath(oldPath); } } goodsService.updateById(goodsVo); return ResultObj.UPDATE_SUCCESS; } catch (Exception e) { e.printStackTrace(); return ResultObj.UPDATE_ERROR; } } /** * 删除商品 * @param id * @return */ @RequestMapping("deleteGoods") public ResultObj deleteGoods(Integer id,String goodsimg){ try { //删除商品的图片 AppFileUtils.removeFileByPath(goodsimg); goodsService.removeById(id); return ResultObj.DELETE_SUCCESS; } catch (Exception e) { e.printStackTrace(); return ResultObj.DELETE_ERROR; } } /** * 加载所有可用的商品 * @return */ @RequestMapping("loadAllGoodsForSelect") public DataGridView loadAllGoodsForSelect(){ QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>(); queryWrapper.eq("available",Constast.AVAILABLE_TRUE); List<Goods> list = goodsService.list(queryWrapper); for (Goods goods : list) { Provider provider = providerService.getById(goods.getProviderid()); if (null!=provider){ goods.setProvidername(provider.getProvidername()); } } return new DataGridView(list); } /** * 根据供应商ID查询商品信息 * @param providerid 供应商ID * @return */ @RequestMapping("loadGoodsByProviderId") public DataGridView loadGoodsByProviderId(Integer providerid){ QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>(); queryWrapper.eq("available",Constast.AVAILABLE_TRUE); queryWrapper.eq(providerid!=null,"providerid",providerid); List<Goods> list = goodsService.list(queryWrapper); for (Goods goods : list) { Provider provider = providerService.getById(goods.getProviderid()); if (null!=provider){ goods.setProvidername(provider.getProvidername()); } } return new DataGridView(list); }}
五,项目总结
经过对一些食品工厂和超市的调研和客户走访,了解了一些经营食品的商户对仓库信息化管理的基本需求,设计了这款基于Spring的食品仓库管理系统。主要以Java 为开发语言,以MySQL为数据库服务器,完成一个基于Windows平台以B/S为体系结构的食品仓库管理系统的分析、设计与实现,系统界面友好、使用方便、可靠性高。该系统具有如下功能:
(1)登录模块:各角色能够通过管理员所创建的用户的用户名和密码进行登录操作;
(2)供销管理模块:该模块包括客户管理、供应商管理、商品管理。管理员通过该模块进行对客户、供应商和商品数据的增删改查。
(3)进退货管理模块:该模块包括进货管理和退货管理。进货功能主要是为了实现登记进货货物记录的功能。这些信息应该包括进货的信息、进货的数量以及进货时间信息加上执行进货的操作的信息以及货物存放仓库的信息等等。退货的功能主要是为了实现登记退货的货物信息的功能。这些退货的记录包括退货的申请信息以及退货数量和退货时间信息,还有执行退货操作的管理员以及货物剩余信息等等。
(4)系统管理模块:该模块是本系统中管理员的核心功能,也是一道难关,包括部门管理、菜单管理、权限管理、角色管理、用户管理。部门管理、权限管理和角色管理是由管理员对用户分配角色,让这些角色分权管理供销、进退货以及销售的模块。菜单管理则是管理员对系统菜单进行管理,按需要关闭和打开菜单功能。用户管理则是管理员对用户信息进行管理,包括修改用户名、密码等等。
(5)销售管理模块:该模块分为商品销售和商品退货,管理员通过这个模块对商品的销售进行管理,其中商品销售包括商品销售的信息、数量、销售时间、销售去向等等。商品退货包括商品的退货信息、退货时间、退货来源等等。
(6)业务管理模块:该模块包括登录日志和系统公告。登录日志对系统中的所有用户都具有实时查看访问日志权限,管理员则是可以对日志进行删除操作。系统公告由管理员发布和修改,用于对用户的通知。
到此这篇关于Springboot详解实现食品仓库管理系统流程的文章就介绍到这了,更多相关Springboot仓库管理内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。