1、项目介绍

技术栈:
Python语言、Django框架、MySQL数据库、Echarts可视化大屏、HTML

功能模块:
(1)智慧仓库实时监控大屏
数据统计面板、空满货物占比分析、仓库库存数据分析、监控数据、库存货物规格分析、货物实时操作记录
(2)货物列表
(3)货物入库出库
(4)厂家数据管理
(5)后台数据管理
(6)后台货物数据管理

在当今快速发展的物流行业中,仓库库存管理的高效性和准确性对于企业的运营至关重要。为此,我们开发了一款基于Python语言、Django框架、MySQL数据库、Echarts可视化大屏和HTML技术的仓库库存管理系统。该系统旨在实现仓库库存的实时监控、数据统计分析以及高效的货物管理功能,帮助企业提升仓库运营效率,降低库存成本。

2、项目界面

(1)智慧仓库实时监控大屏
数据统计面板、空满货物占比分析、仓库库存数据分析、监控数据、库存货物规格分析、货物实时操作记录

python库存管理系统文本框 python 库存管理_python

(2)货物列表

python库存管理系统文本框 python 库存管理_毕业设计_02

(3)货物入库出库

python库存管理系统文本框 python 库存管理_django_03

(4)厂家数据管理

python库存管理系统文本框 python 库存管理_毕业设计_04

(5)后台数据管理

python库存管理系统文本框 python 库存管理_大数据_05

(6)后台货物数据管理

python库存管理系统文本框 python 库存管理_大数据_06

3、项目说明

仓库库存管理系统

在当今快速发展的物流行业中,仓库库存管理的高效性和准确性对于企业的运营至关重要。为此,我们开发了一款基于Python语言、Django框架、MySQL数据库、Echarts可视化大屏和HTML技术的仓库库存管理系统。该系统旨在实现仓库库存的实时监控、数据统计分析以及高效的货物管理功能,帮助企业提升仓库运营效率,降低库存成本。

技术栈概述

Python语言:作为一种强大的编程语言,Python在数据处理和逻辑分析方面表现出色,为我们的仓库库存管理系统提供了稳定可靠的编程环境。
Django框架:Django是一个高级Python Web框架,它支持快速开发、安全且可维护的网站。我们利用Django框架构建了系统的后端,保证了系统的稳定性和扩展性。
MySQL数据库:MySQL数据库以其高性能、可扩展性和易用性成为我们存储和管理仓库数据的理想选择。通过MySQL,我们可以高效地存储、查询和更新库存数据。
Echarts可视化大屏:Echarts是一款功能强大的数据可视化库,它支持丰富的图表类型和灵活的交互方式。我们利用Echarts将仓库数据以直观、美观的图表形式展示给用户,帮助用户快速了解仓库运营状况。
HTML:作为Web页面的基础,HTML用于构建系统的用户界面。我们利用HTML技术为用户提供了友好的操作界面,方便用户与系统进行交互。
功能模块介绍

智慧仓库实时监控大屏:该模块通过Echarts可视化大屏技术,实时展示仓库的运营数据。包括数据统计面板、空满货物占比分析、仓库库存数据分析、监控数据、库存货物规格分析以及货物实时操作记录等。用户可以通过大屏快速了解仓库的整体运营状况,为决策提供有力支持。
货物列表:该模块展示了仓库中所有货物的详细信息,包括货物名称、规格、数量、生产厂家等。用户可以通过货物列表查看货物的具体情况,并进行相应的操作。
货物入库出库:该模块实现了货物的入库和出库功能。用户可以通过系统录入货物的入库和出库信息,系统会自动更新库存数据,并生成相应的操作记录。
厂家数据管理:该模块用于管理货物的生产厂家信息。用户可以添加、修改和删除生产厂家信息,以便更好地管理货物的来源和品质。
后台数据管理:该模块提供了系统的后台管理功能,包括用户管理、权限管理、系统配置等。管理员可以通过后台管理模块对系统进行全面的配置和管理,确保系统的稳定运行。
后台货物数据管理:该模块用于管理仓库中的货物数据。管理员可以通过后台货物数据管理模块对货物信息进行查询、修改和删除操作,确保货物数据的准确性和完整性。
总之,这款仓库库存管理系统凭借其先进的技术栈和丰富的功能模块,为企业提供了高效、准确的仓库库存管理服务。通过实时监控、数据分析和高效的货物管理功能,帮助企业提升仓库运营效率,降低库存成本,从而在激烈的市场竞争中脱颖而出。

4、核心代码

from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import KeShi, Bottle, AirType, State, Size, Log, Person
from django.template import loader
from .forms import ChangeBottle

# 仓库库存盘点
def keshikucun():
    keshi= KeShi.objects.order_by('id')
    info = {}
    for each in keshi:
        info[each.name] = len(Bottle.objects.filter(loc__id=each.id))
        # print(each.name)
    return info

# 货物类型盘点
def qiti_num():
    qiti = AirType.objects.order_by('id')
    info = {}
    for each in qiti:
        info[each.name] = len(Bottle.objects.filter(type__id=each.id))
        # print(each.name)
    return info


# 货物状态盘点
def state_num():
    state = State.objects.order_by('id')
    info = {}
    for each in state:
        info[each.name] = len(Bottle.objects.filter(state__id=each.id))
        # print(each.name)
    return info

# 数据可视化首页
def index(request):
    template = loader.get_template('airhub/index.html')
    # 表头数据
    bottle_num = Bottle.objects.count()         # 货物录入总量
    log_num = Log.objects.count()       # 货物配送总量
    # 数据面板
    bottle_O2_num = Bottle.objects.filter(type__id=1).count()                   # 大型货物
    bottle_40_num = Bottle.objects.filter(size__id=1, type__id=1).count()       # 固体数量
    bottle_10_num = Bottle.objects.filter(size__id=2, type__id=1).count()       # 液体数量
    bottle_CO2_num = Bottle.objects.filter(type__id=2).count()                  # 小型货物数量
    bottle_N2_num = Bottle.objects.filter(type__id=3).count()                   # 小型货物数量

    # 空满数据占比
    bottle_Man = Bottle.objects.filter(state__id=1).count()                     # 企业货物数量
    bottle_Kong = Bottle.objects.filter(state__id=2).count()                    # 普通用户货物数量

    # 仓库库存占比
    kucun_dic = {}
    kucun_name = []
    kucun_num = []
    keshi = KeShi.objects.filter()
    for each in keshi:
        kucun_dic[each.name]=Bottle.objects.filter(loc__id=each.id).count()
        kucun_name.append(each.name)
        kucun_num.append(Bottle.objects.filter(loc__id=each.id).count())
    # print(str(kucun_dic))
    # print(str(kucun_name))
    # print(str(kucun_num))


    # 新增货物列表
    new_bottle = Bottle.objects.order_by('-id')[:6]

    # 新增配送列表
    new_log = Log.objects.order_by('-id')[:6]

    context = {
        'bottle_num': bottle_num,
        'log_num': log_num,
        'bottle_O2_num': bottle_O2_num,
        'bottle_40_num': bottle_40_num,
        'bottle_10_num': bottle_10_num,
        'bottle_CO2_num': bottle_CO2_num,
        'bottle_N2_num': bottle_N2_num,
        'bottle_Man': bottle_Man,
        'bottle_Kong': bottle_Kong,
        'kucun_dic': kucun_dic,
        'kucun_name': str(kucun_name),
        'kucun_num': str(kucun_num),
        'new_bottle': new_bottle,
        'new_log': new_log,

    }
    return HttpResponse(template.render(context, request))





# 货物详情页面
def bottleinfo(request, id):       #货物详情
    bottle = get_object_or_404(Bottle, id = id)
    info = str(bottle.state) +',' +str(bottle.type)+',' + str(bottle.uid) + ',' + str(bottle.name)
    return HttpResponse(info)


# 仓库库存页面
def keshi(request, name):
    list = Bottle.objects.filter(loc__name=name)
    if len(list) == 0:
        return HttpResponse('无库存')
    else:
        INFO = ''
        for each in list:
            INFO = INFO + each.name + ','
        return HttpResponse(INFO)


# 添加货物api
def add_bottle_api(request):
    print(request.method)
    if request.method == "POST":
        if request.POST:
            name = request.POST.get('name', 0)
            state = request.POST.get('state', 0)
            uid = request.POST.get('uid', 0)
            type = request.POST.get('type', 0)
            bro_date = request.POST.get('bro_date', 0)
            loc = request.POST.get('loc', 0)
            size = request.POST.get('size', 0)
            print(111111111111111)
            if name and state and uid and type and bro_date and size:
                bottle = Bottle()
                bottle.name = name
                bottle.uid = uid
                bottle.state = get_object_or_404(State, id=state)
                bottle.type = get_object_or_404(AirType, id=type)
                bottle.bro_date = bro_date
                bottle.loc = get_object_or_404(KeShi, id=loc)
                bottle.size = get_object_or_404(Size, id=size)
                bottle.save()
                info = name + ',' + uid + ',' + state + ',' + type
                return HttpResponse('修改成功'+',' + info)
            else:
                return HttpResponse('输入错误')
        else:
            return HttpResponse('输入为空')
    else:
        return HttpResponse('方法错误')


# 变更货物log_api
def change_bottle_api(request):
    if request.method == 'POST':
        if request.POST :
            state = request.POST.get('state', 0)
            loc = request.POST.get('loc', 0)
            bottle_id = request.POST.get('bottle_id', 0)
            person = request.POST.get('person', 0)
            print(bottle_id, state, loc)
            if state and loc and bottle_id:
                bottle = Bottle.objects.get(id=bottle_id)
                bottle.state = State.objects.get(id=state)
                bottle.loc = KeShi.objects.get(id=loc)
                bottle.save()
                log = Log()
                log.loc = KeShi.objects.get(id=loc)
                log.state = State.objects.get(id=state)
                log.bottle = Bottle.objects.get(id=bottle_id)
                log.person = Person.objects.get(id=person)
                log.save()
                return HttpResponse('修改成功')
            else:
                return HttpResponse('输入为空')
        else:
            return HttpResponse('方法错误')


# show_主页
def show(request):
    template = loader.get_template('airhub/show.html')
    airtype = AirType.objects.all()
    keshiname= KeShi.objects.all()
    context = {
        'airtype': airtype,
        'keshiname': keshiname,
    }
    return HttpResponse(template.render(context, request))