大家可以帮忙点赞、收藏、关注、评论啦 👇🏻👇🏻👇🏻
精彩专栏推荐订阅:在 下方专栏
JAVA实战项目
文章目录
一、项目介绍
仓储管理小程序是一个基于互联网的仓储管理系统,它主要针对管理员、员工和供应商三个角色进行设计。该系统旨在实现仓储管理的自动化、智能化和信息化,提高仓储管理的效率和准确性,降低企业的仓储成本,并方便员工和供应商更好地参与仓储活动。
二、功能介绍
管理员:
管理员是仓储管理小程序的超级用户,拥有对系统的全面管理和控制权限。以下是管理员的主要功能:
供应商管理:管理员可以添加、编辑、删除和查看供应商信息,包括供应商的基本信息、联系方式、银行账号等。还可以对供应商的资质、信誉等进行审核。
员工管理:管理员可以添加、编辑、删除和查看员工信息,包括员工的基本信息、联系方式、工作权限等。
商品分类管理:管理员可以添加、编辑、删除和查看商品分类信息,并对商品进行分类管理。
商品信息管理:管理员可以添加、编辑、删除和查看商品信息,包括商品名称、描述、价格、库存等。
商品入库管理:管理员可以安排员工进行商品入库,对货物的数量、品种、价格等进行审核和管理。
商品出库管理:管理员可以安排员工进行商品出库,对货物的数量、品种、去向等进行审核和管理。
供应商货物管理:管理员可以查看供应商的货物信息,对货物的数量、品种、价格等进行审核和管理。
货物盘点管理:管理员可以对仓库中的货物进行盘点,对货物的数量、品种等进行审核和管理。并生成货物库存报表。
供应商:
供应商是向仓储管理系统提供货物的角色,可以发布自己的商品信息,提交货物信息以及管理自己的货物信息。以下是供应商的主要功能:
注册和登录:供应商可以通过系统注册账号并登录系统,对自身的信息进行管理。
商品信息管理:供应商可以添加、编辑、删除和查看自己商品信息,包括商品名称、描述、价格、库存等。
新增货物商品:供应商可以新增货物商品,将货物新品添加到系统中,员工可以查看到最新的货物商品信息。
员工:
员工是仓储管理系统中的执行者,负责执行管理员安排的任务,并对自己的工作进行记录。以下是员工的主要功能:
注册和登录:员工可以通过系统注册账号并登录系统,对自身的信息进行查看和编辑。
商品信息查看:员工可以查看所有商品信息,了解目前仓储货物的全部情况。
商品入库:员工可以根据管理员的安排,执行商品入库任务,记录货物的数量、品种等信息。
商品出库:员工可以根据管理员的安排,执行商品出库任务,记录货物的数量、品种以及去向等信息。
供应商货物查看:员工可以查看供应商的货物信息,了解目前货物的情况。
通过上述功能概述,仓储管理小程序能够实现仓储管理的全面信息化和智能化,提高仓储管理的效率和准确性,降低企业的仓储成本。同时方便管理员、员工和供应商更好地参与仓储活动。
三、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:SSM
- 前端:vue
- 工具:IDEA或者Eclipse、JDK1.8、Maven
四、项目展示
登录页面:
首页模块:
管理员模块:
五、代码展示
public ServerResponseEntity<IPage<MyOrderDto>> myOrder(@RequestParam(value = "status") Integer status, PageParam<MyOrderDto> page) {
String userId = SecurityUtils.getUser().getUserId();
IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByUserIdAndStatus(page, userId, status);
return ServerResponseEntity.success(myOrderDtoIpage);
}
/**
* 取消订单
*/
@PutMapping("/cancel/{orderNumber}")
@Operation(summary = "根据订单号取消订单", description = "根据订单号取消订单")
@Parameter(name = "orderNumber", description = "订单号", required = true)
public ServerResponseEntity<String> cancel(@PathVariable("orderNumber") String orderNumber) {
String userId = SecurityUtils.getUser().getUserId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (!Objects.equals(order.getUserId(), userId)) {
throw new YamiShopBindException("你没有权限获取该订单信息");
}
if (!Objects.equals(order.getStatus(), OrderStatus.UNPAY.value())) {
throw new YamiShopBindException("订单已支付,无法取消订单");
}
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
order.setOrderItems(orderItems);
// 取消订单
orderService.cancelOrders(Collections.singletonList(order));
// 清除缓存
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
return ServerResponseEntity.success();
}
/**
* 确认收货
*/
@PutMapping("/receipt/{orderNumber}")
@Operation(summary = "根据订单号确认收货", description = "根据订单号确认收货")
public ServerResponseEntity<String> receipt(@PathVariable("orderNumber") String orderNumber) {
String userId = SecurityUtils.getUser().getUserId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (!Objects.equals(order.getUserId(), userId)) {
throw new YamiShopBindException("你没有权限获取该订单信息");
}
if (!Objects.equals(order.getStatus(), OrderStatus.CONSIGNMENT.value())) {
throw new YamiShopBindException("订单未发货,无法确认收货");
}
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
order.setOrderItems(orderItems);
// 确认收货
orderService.confirmOrder(Collections.singletonList(order));
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
return ServerResponseEntity.success();
}
/**
* 删除订单
*/
@DeleteMapping("/{orderNumber}")
@Operation(summary = "根据订单号删除订单", description = "根据订单号删除订单")
@Parameter(name = "orderNumber", description = "订单号", required = true)
public ServerResponseEntity<String> delete(@PathVariable("orderNumber") String orderNumber) {
String userId = SecurityUtils.getUser().getUserId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (order == null) {
throw new YamiShopBindException("该订单不存在");
}
if (!Objects.equals(order.getUserId(), userId)) {
throw new YamiShopBindException("你没有权限获取该订单信息");
}
if (!Objects.equals(order.getStatus(), OrderStatus.SUCCESS.value()) && !Objects.equals(order.getStatus(), OrderStatus.CLOSE.value())) {
throw new YamiShopBindException("订单未完成或未关闭,无法删除订单");
}
// 删除订单
orderService.deleteOrders(Collections.singletonList(order));
return ServerResponseEntity.success("删除成功");
}
/**
* 获取我的订单订单数量
*/
@GetMapping("/orderCount")
@Operation(summary = "获取我的订单订单数量", description = "获取我的订单订单数量")
public ServerResponseEntity<OrderCountData> getOrderCount() {
String userId = SecurityUtils.getUser().getUserId();
OrderCountData orderCountMap = orderService.getOrderCount(userId);
return ServerResponseEntity.success(orderCountMap);
}
}
六、项目总结
仓储管理小程序是一个针对管理员、员工和供应商设计的自动化、智能化和信息化的仓储管理系统。该系统通过实现商品信息、供应商信息、员工信息和仓库货物信息的系统化管理,提高了仓储管理的效率和准确性,降低了企业的仓储成本。同时,该系统方便管理员、员工和供应商更好地参与仓储活动,实现了仓储管理的全面信息化和智能化。总之,仓储管理小程序是一款能够提升仓储管理效率、降低仓储成本、方便员工和供应商参与仓储活动的重要工具。