本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。
系统的选题背景和意义
选题背景: 随着高校规模的扩大和学生人数的增加,高校饭堂成为一个重要的服务场所。然而,传统的饭堂管理方式存在一些问题,如排队等候时间长、食品供应不足或浪费、餐厅运营效率低下等。为了解决这个问题,设计一个高校饭堂管理系统具有重要意义。该系统旨在通过信息化手段提高饭堂的运营效率,优化食品供应链,提供更好的用餐体验。
选题意义: 高校饭堂管理系统的设计与实现具有重要的意义。首先,它可以提高饭堂的运营效率。通过预约点餐、智能排队等功能,系统可以减少学生排队等候的时间,提高用餐效率。其次,该系统还可以优化食品供应链。通过对食材采购、库存管理等进行精确控制,系统可以减少食品的浪费和过期情况,提高资源利用率。此外,高校饭堂管理系统还可以提供其他便利功能,如在线支付、菜品评价等,方便用户进行用餐和反馈。
以上选题背景和意义内容是根据本选题撰写,非本作品实际的选题背景、意义或功能。各位童鞋可参考用于写开题选题和意义内容切勿直接引用。本作品的实际功能和技术以下列内容为准。
技术栈:
本项目的技术栈主要包括前端Vue、后端Java程序语言开发、SSM框架和MySQL5.7数据库。
Vue是一种轻量级的JavaScript框架,能够快速构建交互式的用户界面。Vue提供了易于使用的API,使得开发者可以非常容易地创建组件化、可复用的代码。
Java是一种跨平台的编程语言,拥有丰富的库和工具生态系统,广泛用于企业级应用开发。Java在后端服务开发方面拥有强大的性能和可伸缩性,并且能够很好地与其他技术栈集成,如Spring、Hibernate、MyBatis等。
SSM框架是Spring、SpringMVC和MyBatis三个框架的结合体,其整合了各自优势,形成了完整的Web开发框架。本系统客户端向服务器发送请求,SpringMVC拦截请求交给相应的控制器(Controller)处理,使用注解或配置文件定义URL和方法映射,控制器调用Service层中的业务逻辑处理方法,Service层处理完毕后将结果返回给控制器,控制器根据返回的结果选择适当的视图(View)进行展示,视图渲染完成后返回给客户端的过程。
MySQL5.7是一种开源的关系型数据库管理系统,在数据存储和管理方面表现优异。它能够轻松地集成到任何技术栈中,如Java、Python、Ruby等。除此之外,MySQL还具备高可靠性、高稳定性、易扩展性和强数据安全性等特点。
我们选择Vue、Java、SSM框架和MySQL5.7作为本作品的技术栈,具有语言间的无缝协作、代码复用性强、开发效率高、性能高等诸多优势。
功能结构
为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该高校饭堂管理系统的功能结构图如下所示:
图4-1 系统总体结构图
4.2 数据库设计
4.2.1 数据库E/R图
ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述系统涉及到的实体之间的相互关系。在系统中对一些主要的几个关键实体如下图:
(1) 仓库信息E/R图如下所示:
图4-2仓库信息E/R图
(2) 助理信息E/R图如下所示:
、
图4-3助理信息E/R图
(3) 签到信息E/R图如下所示:
图4-4签到信息E/R图
(4) 排班信息E/R图如下所示:
图4-5排班信息E/R图
(5) 员工信息E/R图如下所示:
图4-6员工信息E/R图
管理员功能模块
管理员登录,管理员通过登录页面输入用户名、密码,选择角色并点击登录进行系统登录操作,如图5-1所示。
图5-1管理员登录界面图
管理员登录系统后,可以对首页、个人中心、仓库管理、负责人管理、助理管理、员工管理、菜品分类管理、菜品信息管理、活动宣发管理、公告板管理、物品分类管理、物品信息管理、入库登记管理、出库登记管理、签到信息管理、排班信息管理、请假信息管理等功能进行相应操作,如图5-2所示。
图5-2管理员功能界图面
仓库管理,在仓库管理页面可以对仓库编号、仓库名称、仓库类型、仓库位置、仓库面积等内容,进行详情、修改、删除等操作,如图5-3所示。
图5-3仓库管理界面图
负责人管理,在负责人管理页面可以对区域名称、负责人、联系电话、身份证等内容,进行详情、修改、删除等操作,如图5-4所示。
图5-4负责人管理界面图
助理管理,在助理管理页面可以对助理工号、助理姓名、性别、联系电话、身份证等内容,进行详情、修改、删除等操作,如图5-5所示。
图5-5助理管理界面
菜品信息管理,在菜品信息管理页面可以对菜品编号、菜品名称、菜品分类、口味、图片、工号、姓名、审核回复、审核状态等内容,进行详情、修改、删除等操作,如图5-6所示。
图5-6菜品信息管理界面图
以下是菜品信息代码;
</el-table-column>
<el-table-column label="索引" :align="contents.tableAlign" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="caipinbianhao"
:header-align="contents.tableAlign"
label="菜品编号">
<template slot-scope="scope">
{{scope.row.caipinbianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="caipinmingcheng"
:header-align="contents.tableAlign"
label="菜品名称">
<template slot-scope="scope">
{{scope.row.caipinmingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="caipinfenlei"
:header-align="contents.tableAlign"
label="菜品分类">
<template slot-scope="scope">
{{scope.row.caipinfenlei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="kouwei"
:header-align="contents.tableAlign"
label="口味">
<template slot-scope="scope">
{{scope.row.kouwei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign" prop="tupian"
:header-align="contents.tableAlign"
width="200"
label="图片">
<template slot-scope="scope">
<div v-if="scope.row.tupian">
<img :src="$base.url+scope.row.tupian.split(',')[0]" width="100" height="100">
</div>
<div v-else>无图片</div>
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="gonghao"
:header-align="contents.tableAlign"
label="工号">
<template slot-scope="scope">
{{scope.row.gonghao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="xingming"
:header-align="contents.tableAlign"
label="姓名">
<template slot-scope="scope">
{{scope.row.xingming}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shhf"
:header-align="contents.tableAlign"
label="审核回复">
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="sfsh"
:header-align="contents.tableAlign"
label="审核状态">
<template slot-scope="scope">
<span style="margin-right:10px">{{scope.row.sfsh=='是'?'通过':'未通过'}}</span>
</template>
</el-table-column>
活动宣发管理,在活动宣发管理页面可以对活动标题、活动分类、活动名称、活动图片、开始时间、结束时间、工号、姓名、审核回复、审核状态等内容,进行详情、修改、删除等操作,如图5-7所示。
图5-7活动宣发管理界面图
以下是活动宣发代码;
</el-table-column>
<el-table-column label="索引" :align="contents.tableAlign" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="huodongbiaoti"
:header-align="contents.tableAlign"
label="活动标题">
<template slot-scope="scope">
{{scope.row.huodongbiaoti}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="huodongfenlei"
:header-align="contents.tableAlign"
label="活动分类">
<template slot-scope="scope">
{{scope.row.huodongfenlei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="huodongmingcheng"
:header-align="contents.tableAlign"
label="活动名称">
<template slot-scope="scope">
{{scope.row.huodongmingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign" prop="huodongtupian"
:header-align="contents.tableAlign"
width="200"
label="活动图片">
<template slot-scope="scope">
<div v-if="scope.row.huodongtupian">
<img :src="$base.url+scope.row.huodongtupian.split(',')[0]" width="100" height="100">
</div>
<div v-else>无图片</div>
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="kaishishijian"
:header-align="contents.tableAlign"
label="开始时间">
<template slot-scope="scope">
{{scope.row.kaishishijian}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="jieshushijian"
:header-align="contents.tableAlign"
label="结束时间">
<template slot-scope="scope">
{{scope.row.jieshushijian}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="gonghao"
:header-align="contents.tableAlign"
label="工号">
<template slot-scope="scope">
{{scope.row.gonghao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="xingming"
:header-align="contents.tableAlign"
label="姓名">
<template slot-scope="scope">
{{scope.row.xingming}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shhf"
:header-align="contents.tableAlign"
label="审核回复">
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="sfsh"
:header-align="contents.tableAlign"
label="审核状态">
<template slot-scope="scope">
<span style="margin-right:10px">{{scope.row.sfsh=='是'?'通过':'未通过'}}</span>
</template>
</el-table-column>
公告板管理,在公告板管理页面可以对公告标题、公告类型、发布时间等内容,进行详情、修改、删除等操作,如图5-8所示。
图5-8公告板管理界面图
物品信息管理,在物品信息管理页面可以对物品编号、物品名称、物品分类、数量、仓库编号、仓库名称、登记时间等内容,进行详情、修改、删除等操作,如图5-9 所示。
图5-9物品信息管理界面图
以下是物品信息代码;
</el-table-column>
<el-table-column label="索引" :align="contents.tableAlign" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinbianhao"
:header-align="contents.tableAlign"
label="物品编号">
<template slot-scope="scope">
{{scope.row.wupinbianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinmingcheng"
:header-align="contents.tableAlign"
label="物品名称">
<template slot-scope="scope">
{{scope.row.wupinmingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinfenlei"
:header-align="contents.tableAlign"
label="物品分类">
<template slot-scope="scope">
{{scope.row.wupinfenlei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shuliang"
:header-align="contents.tableAlign"
label="数量">
<template slot-scope="scope">
{{scope.row.shuliang}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="cangkubianhao"
:header-align="contents.tableAlign"
label="仓库编号">
<template slot-scope="scope">
{{scope.row.cangkubianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="cangkumingcheng"
:header-align="contents.tableAlign"
label="仓库名称">
<template slot-scope="scope">
{{scope.row.cangkumingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="dengjishijian"
:header-align="contents.tableAlign"
label="登记时间">
<template slot-scope="scope">
{{scope.row.dengjishijian}}
</template>
</el-table-column>
入库登记管理,在入库登记管理页面可以对入库编号、物品编号、物品名称、物资分类、数量、仓库名称、仓库编号、入库时间等内容,进行详情、修改、删除等操作,如图5-10 所示。
图5-10入库登记管理界面图
以下是入库登记代码;
</el-table-column>
<el-table-column label="索引" :align="contents.tableAlign" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="rukubianhao"
:header-align="contents.tableAlign"
label="入库编号">
<template slot-scope="scope">
{{scope.row.rukubianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinbianhao"
:header-align="contents.tableAlign"
label="物品编号">
<template slot-scope="scope">
{{scope.row.wupinbianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinmingcheng"
:header-align="contents.tableAlign"
label="物品名称">
<template slot-scope="scope">
{{scope.row.wupinmingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinfenlei"
:header-align="contents.tableAlign"
label="物品分类">
<template slot-scope="scope">
{{scope.row.wupinfenlei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shuliang"
:header-align="contents.tableAlign"
label="数量">
<template slot-scope="scope">
{{scope.row.shuliang}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="cangkumingcheng"
:header-align="contents.tableAlign"
label="仓库名称">
<template slot-scope="scope">
{{scope.row.cangkumingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="cangkubianhao"
:header-align="contents.tableAlign"
label="仓库编号">
<template slot-scope="scope">
{{scope.row.cangkubianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="rukushijian"
:header-align="contents.tableAlign"
label="入库时间">
<template slot-scope="scope">
{{scope.row.rukushijian}}
</template>
</el-table-column>
出库登记管理,在出库登记管理页面可以对出库编号、物品编号、物品名称、物资分类、数量、仓库名称、仓库编号、出库时间等内容,进行详情、修改、删除等操作,如图5-11所示。
图5-11出库登记管理界面图
以下是出库登记代码;
</el-table-column>
<el-table-column label="索引" :align="contents.tableAlign" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="chukubianhao"
:header-align="contents.tableAlign"
label="出库编号">
<template slot-scope="scope">
{{scope.row.chukubianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinbianhao"
:header-align="contents.tableAlign"
label="物品编号">
<template slot-scope="scope">
{{scope.row.wupinbianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinmingcheng"
:header-align="contents.tableAlign"
label="物品名称">
<template slot-scope="scope">
{{scope.row.wupinmingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="wupinfenlei"
:header-align="contents.tableAlign"
label="物品分类">
<template slot-scope="scope">
{{scope.row.wupinfenlei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shuliang"
:header-align="contents.tableAlign"
label="数量">
<template slot-scope="scope">
{{scope.row.shuliang}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="cangkumingcheng"
:header-align="contents.tableAlign"
label="仓库名称">
<template slot-scope="scope">
{{scope.row.cangkumingcheng}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="cangkubianhao"
:header-align="contents.tableAlign"
label="仓库编号">
<template slot-scope="scope">
{{scope.row.cangkubianhao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="chukushijian"
:header-align="contents.tableAlign"
label="出库时间">
<template slot-scope="scope">
{{scope.row.chukushijian}}
</template>
</el-table-column>
签到信息管理,在签到信息管理页面可以对工号、姓名、签到时间、签到类型、备注等内容,进行详情、修改、删除等操作,如图5-12所示。
图5-12签到信息管理界面图
请假信息管理,在请假信息管理页面可以对工号、岗位、姓名、手机、请假日期、审核回复、审核状态等内容,进行详情、修改、删除等操作,如图5-13所示。
图5-13请假信息管理界面图
以下是请假信息代码;
</el-table-column>
<el-table-column label="索引" :align="contents.tableAlign" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="gonghao"
:header-align="contents.tableAlign"
label="工号">
<template slot-scope="scope">
{{scope.row.gonghao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="gangwei"
:header-align="contents.tableAlign"
label="岗位">
<template slot-scope="scope">
{{scope.row.gangwei}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="xingming"
:header-align="contents.tableAlign"
label="姓名">
<template slot-scope="scope">
{{scope.row.xingming}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shouji"
:header-align="contents.tableAlign"
label="手机">
<template slot-scope="scope">
{{scope.row.shouji}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="qingjiariqi"
:header-align="contents.tableAlign"
label="请假日期">
<template slot-scope="scope">
{{scope.row.qingjiariqi}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shhf"
:header-align="contents.tableAlign"
label="审核回复">
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="sfsh"
:header-align="contents.tableAlign"
label="审核状态">
<template slot-scope="scope">
<span style="margin-right:10px">{{scope.row.sfsh=='是'?'通过':'未通过'}}</span>
</template>
</el-table-column>
5.2负责人功能模块
负责人登录,在登录页面填写账号、密码进行登录如图5-14所示。
图5-14负责人登录功能界面图
负责人登录系统后,可以对首页、个人中心、菜品信息管理、活动宣发管理、公告板管理、物品信息管理、入库登记管理、出库登记管理、签到信息管理、排班信息管理、请假信息管理等功能进行相应操作,如图5-15所示。
图5-15负责人功能界面图