【计算机专业毕业设计】基于Java的仓储管理小程序

大家可以帮忙点赞、收藏、关注、评论啦 👇🏻👇🏻👇🏻

精彩专栏推荐订阅:在 下方专栏

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);
    }


}

六、项目总结

仓储管理小程序是一个针对管理员、员工和供应商设计的自动化、智能化和信息化的仓储管理系统。该系统通过实现商品信息、供应商信息、员工信息和仓库货物信息的系统化管理,提高了仓储管理的效率和准确性,降低了企业的仓储成本。同时,该系统方便管理员、员工和供应商更好地参与仓储活动,实现了仓储管理的全面信息化和智能化。总之,仓储管理小程序是一款能够提升仓储管理效率、降低仓储成本、方便员工和供应商参与仓储活动的重要工具。

大家点赞、收藏、关注、有问题都可留言交流👇🏻👇🏻👇🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值