当前位置:   article > 正文

基于python智慧仓库实时监控大屏 库存管理 仓库管理 物品管理 仓库大数据+可视化+Django框架(毕业设计)✅

基于python智慧仓库实时监控大屏 库存管理 仓库管理 物品管理 仓库大数据+可视化+Django框架(毕业设计)✅

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌

毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕业设计选题汇总

1、项目介绍

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

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

2、项目界面

(1)智慧仓库实时监控大屏
数据统计面板、空满货物占比分析、仓库库存数据分析、监控数据、库存货物规格分析、货物实时操作记录
在这里插入图片描述

(2)货物列表
在这里插入图片描述

(3)货物入库出库
在这里插入图片描述

(4)厂家数据管理
在这里插入图片描述
(5)后台数据管理
在这里插入图片描述

(6)后台货物数据管理

在这里插入图片描述

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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/628656
推荐阅读
相关标签