摘 要
如今科技发展,技术进步,信息化的普及为生活带来极大的便利。各行各业都在积极进行信息化以提高工作效率。而在餐饮行业中,使用信息化代替传统笔记的冷库管理方式,将大大精简操作流程并提升可靠度。
基于以上现况,本论文结合具体餐厅后厨的实际工作情况,构建了基于C/S模式与Android的小型冷库管理系统,具体为手机apk与本地数据库协同完成。技术方面该系统采用java语言结合Android Studio库体系完成系统工作,在本文系统中,将使用Android Studio完成前端工作,java用作主要编程语言且完成中间件的信息传递工作,以及运作逻辑的后端工作,最后将使用MySQL数据库结合java完成数据存储部分的后端工作。在本文系统将开发出入库管理,物品解冻,临期货品提醒等功能。
该系统实现的主要功能为简化餐厅工作人员与管理人员冷库管理工作,管理人员可以更直观简洁的查看与管理冷库具体信息,工作人员则可以依据该应用中的出入库清单简明地完成工作。将有效提高餐饮类行业后厨的工作效率并降低错误几率。
关键词:信息化;MySql数据库;java;Android;冷库管理
Abstract
Nowadays, the development of technology, technological progress, and the popularization of information technology have brought great convenience to life. Various industries are actively implementing informatization to improve work efficiency. In the catering industry, using information technology to replace traditional note taking in cold storage management will greatly streamline operational processes and improve reliability.
Based on the above current situation, this paper constructs a small cold storage management system based on C/S mode and Android, combined with the actual work situation of the kitchen in a specific restaurant. The system is specifically completed in collaboration with mobile APK and local databases. In terms of technology, the system uses Java language combined with the Android Studio library system to complete the system work. In this system, Android Studio will be used to complete the front-end work, and Java will be used as the main programming language to complete the information transmission work of the middleware, as well as the back-end work of the operational logic. Finally, MySQL database will be used in combination with Java to complete the back-end work of the data storage part. In this article, the system will develop functions such as inbound and outbound management, item unfreezing, and reminder of pending goods.
The main function of this system is to simplify the management of cold storage for restaurant staff and management personnel. Management personnel can view and manage specific information of the cold storage more intuitively and concisely, and staff can complete their work concisely based on the inventory list in the application. It will effectively improve the work efficiency of the kitchen staff in the catering industry and reduce the probability of errors.
Keywords: informationize,mysql datebase,java,Android,cold storage management
目 录
第1章 绪 论
在科技进步的今天,信息化意味着工作效率的提升,对于任何一个行业都有着一定影响,而对于工作繁重,管理压力居高不下的餐饮行业更是如此,尤其是具备一定规模的,有冷库存储的餐厅后厨,更需要一个良好的便利的冷库管理。
如何更高效,更便利的管理餐厅后厨以及冷库成为了提高效率的重心。因此本文选题目的是从信息化角度入手,优化管理流程,从而提升效率,降低成本。
当今社会科技进步,计算机遍布人民生活的每个角落,小到家电上的芯片,大到城市的网络中心,其中便携设备手机,是计算机中的佼佼者,其发展程度之深,普及率之高,说明了人民对于计算机的使用越发熟练,对计算机的特定需求也随之增长,因此在这样的背景下,各行各业也进行了针对业务的信息化,其中最显著的莫过于手机应用。在手机应用的帮助下,政府可以使人民足不出户办理业务,企业也发展出了具备企业乃至行业特色的应用,方便了自己更方便了消费者,这是计算机科技进步在日常生活与工作带来的效率提升以及便利。
而具体到餐饮行业的日常流程中,针对小型冷库管理部分,许多餐厅后厨依旧是十分原始的笔纸抄记方式进行冷库出入库的管理,这样的管理方式不仅效率低下且容易出错,显著的影响了一个餐厅厨房的工作效率,更耗费了管理人员额外的精力,更甚者餐厅可能因为不良的冷库管理导致不必要的原材料损失,直接影响成本。
因此,本文选题的意义是针对性的设计一个便携的,无使用门槛的小型冷库管理系统,代替传统人手抄记的冷库管理部分,优化管理流程,减轻管理人员负担,以及降低出错的可能,以达到提高效率与降低管理成本的目的。
基于选题的目的与意义,本文将完成以下工作:
(1)冷库管理app的ui与交互
(2)冷库管理app的账号登录与注册
(3)完成app端账号管理功能
(4)完成app端库存管理功能
(5)完成app端信息查询功能
(6)完成app端信息管理功能
第2章 相关技术
java编程语言于1995年由Sun微系统公司推出,是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 同时,Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
安卓(Android)是一种基于Linux内核(不包含GUN组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由安迪·鲁宾开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
在JetBrains Intellij IDEA的基础上,Android Studio 提供了:
(1)基于Gradle的构建支持。
(2)Android 专属的重构和快速修复。
(3)提示工具以捕获性能、可用性、版本兼容性等问题。
(4)支持ProGuard 和应用签名。
(5)基于模板的向导来生成常用的 Android 应用设计和组件。
(6)功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览。
因此,本文工作选择使用Android Studio作为开发环境,该开发环境将大大提高开发效率与提供足够且必要的组件。
MySQL是一款关系式数据库系统,由瑞典MySQL AB集团所设计,隶属于Oracle旗下商品。MySQL作为受欢迎的关系式数据库系统之中,在商业领域方面,MySQL更是目前最佳的RDBMS管理(Relational Database Management System,关联数据库管理系统)的应用之中。
MySQL是一种关联式数据库,通过联系数据库可以将全部数据信息都储存于不同类型的表中,而不用把全部数据信息都置于某个大仓库里,这就大大提高了反应速度并增强了操作灵活性。
第3章 系统分析
本文系统设计的系统将从三个方面进行可行性分析,分别为:技术可行性,操作可行性以及经济可行性。
从技术可行性分析。现科技条件下硬件性能卓越,本文系统在当今硬件下没有负担。本文系统使用Android作为应用前端,mySql server数据库作为数据后端。本文系统基于Android的部分,更便于该应用的广泛使用,且后端接入的MySql Server数据库要求普通,完全可以在具备一定硬件条件的x86架构/arm架构下不论操作系统(Window/Linux+GUN)进行部署,并进行开发和设计,使系统所需算力与内存较少,并降低对于应用运行所需硬件的要求。因此,从技术可行性上说,本文系统可行。
从操作可行性分析。本文系统前端为基于Android的应用,在安卓系统被广泛使用的今天,使用环境完备,且在该环境下用户均形成一定的使用习惯,具备操作应用的知识。因此,从操作可行性上说,本文系统是可行的。
从经济可行性分析。本系统的开发环境以及测试环境均可以免费使用, 且开源环境比较成熟,也存在成熟的设计框架以及体系可供参考,因此,系统的开发与维护成本将维持在一个比较低的标准。所以,从经济可行性上说,本文系统是完全可行的。
根据实地考察,并经过功能的研究与功能设计,建立了基于Android的、信息化冷库管理系统。
本系统包含以下模块:(1)用户的登录与注册模块(2)冷库的库存管理模块(3)冷库的库存信息查询模块(4)冷库的库存信息管理模块。
以下是上述模块的具体功能需求分析(见表3-1至表3-4)。
3.2.1 账号管理模块
表3-1 账号管理模块需求表
功能名称 |
功能描述 |
登录模块 |
供用户进行账号的登录 |
注册模块 |
若用户还没有账号,提供账号注册服务 |
账号信息 |
记录账号的相关信息 |
用户注销 |
管理员删除具体用户账号 |
数据备份 |
完成与数据库的数据沟通流程 |
3.2.2 库存管理模块
表3-2 库存管理模块需求表
功能名称 |
功能描述 |
库存管理模块 |
供用户进行具体的库存管理 |
入库单 |
供用户完成货品入库登记 |
出库单 |
供用户完成货品出库登记 |
解冻列表 |
展示正在解冻的货品 |
临期货品列表 |
展示即将过期的货品 |
3.2.3 信息查询模块
表3-3 信息查询模块需求表
功能名称 |
功能描述 |
信息查询模块 |
供管理员进行全系统的信息查询 |
总库存单 |
供管理员进行总库存货品的信息查询 |
总出库单 |
供管理员进行总出库货品的信息查询 |
日出库单 |
供管理员进行当日出库货品的信息查询 |
3.2.4 信息管理模块
表3-4 信息管理模块需求表
功能名称 |
功能描述 |
信息管理模块 |
供管理员进行全系统的信息管理 |
入库信息修改 |
供管理员进行已入库货品信息进行修改 |
出库信息修改 |
供管理员进行已出库货品信息进行修改 |
总库存信息修改 |
供管理员进行总在库货品信息进行修改 |
在本文系统中,有三个角色,分别为:店长(管理员),经理,执行员工。因此,有以下系统流程(见图3-1)。
执行员工:
1、员工在登录页面输入账号密码进行登录,数据库校验账号信息并允许登录。
2、若没有账号则进入注册流程,注册信息同步到数据库。
3、登录后员工可以访问并修改库存管理模块的入库单。出库单部分员工只可查看。
4、员工完成入库单功能的内容修改后将同步数据库。
经理:
1、经理在登录页面输入账号密码进行登录,数据库校验账号信息并允许登录。
2、若没有账号则进入注册流程,注册信息同步到数据库。
3、登录后经理可以访问并修改库存管理模块的入库单和出货单,员工根据经理编辑的出库单进行出库。
4、经理完成入库单,出库单功能的内容修改后将同步数据库。
店长(管理员):
1、店长在登录页面输入管理员账号密码进行登录。
2、登录后店长可以进行对库存管理模块的内容进行访问并修改。
3、根据实际需求店长可以对总库存信息进行访问并修改。
4、店长可以根据人员就职情况在信息管理模块进行账号的注销。
图3-1 系统流程分析图
本章节将采用数据流图(Data Flow Diagram)的方式,可视化的描述本文系统的逻辑功能,具体的数据信息在系统内的逻辑流动以及逻辑转换流程等。以此完成对本文系统进行数据流程分析。
在零层数据流程中,管理员拥有对系统的完全管理权限,负责了包括全库数据管理以及用户账户管理的权能。用户可以获取登录相关,具体冷库存储模块的相关信息,以上内容可以通过系统内具体的类别列表进行检索以及维护。(见图3-2)
图3-2 系统数据流图(0层)
在一层数据流程中,区分为管理组与用户组,其中管理组包含管理员(可以有多位管理员),用户组包含(若干名)经理和执行员工。执行员工可以根据具体入库,修改入库信息表,并可以根据出库信息表完成对应出库。经理可以根据实际情况修改入库信息,可以查询总库存并完成出库信息。管理员可对全部数据进行查询以及编辑。(见图3-3至图3-4)
图3-3 系统数据流图_经理侧(1层)
图3-4 系统数据流图_执行员工侧(1层)
在二层数据流程中,管理员直接从数据库读出用户账号的相关数据并可以对该部分数据进行查询,修改,删除以及增添,以此达成对系统用户数据的管理与维护。(见图3-5)
图3-5 系统数据流图(2层)
第4章 系统的设计与实现
系统采用单客户端设计,但区别账号权限。在本文系统中,该系统将在前端完成库存管理,信息查询,信息管理以及账号管理的功能,并将数据同步到后台服务器。管理员可以在数据库操作所有信息。
系统的功能结构图如下图所示。(见图4-1)
图4-1 系统架构图
4.2.1 账号管理模块
在本文系统中,登录与注册模块将完成账号登录,账号信息等级,账号注销功能。该模块有固定管理员账号admin。
账号注册:可以注册新的管理员(店长)账号,经理账号,员工账号。账号注册时将等级账号信息并分配权限,并同步到数据库。
账号信息登记:在该功能中,将为注册好的账号进行权限的分配。其中,管理员类账号拥有admin同级管理权限,将可以完全操作系统的所有信息。经理类账号可以完全操作入库操作,出库操作的所有信息,能对解冻操作以及总库存进行查询。员工类账号可以完全操作入库信息和解冻操作的所有信息,能对出库操作的信息进行查询。
账户注销:该功能仅供管理员级账户使用。该功能将完全删除一个账号包括数据库内的所有信息。
账号登录:允许已注册用户登录至全功能页,并提供账号注册入口。
4.2.2 库存管理模块
在本文系统中,库存管理将完成入库单,出库单,解冻列表三项功能:
(1)入库单:该功能提供外部输入,接受来自经理或员工对入库货品的登记,登记内容包括货品内容,放置位置,生产日期以及保质期。该功能具有一个独立的临时缓存记录表(入库信息表),在入库货品登录完成后,入库临时缓存记录表中的内容将并入总库存表中,并清空入库临时缓存记录表。
(2)出库单:该功能仅接受来自经理以及管理员(店长)账号提供的外部输入资料,员工账号只能查询该表信息,以便出库工作的完成。该功能具备一个临时缓存记录表,在完成出库货品的登录之后,出库临时缓存记录表的内容将并入总库存表,且输出一个带当天日期的日志文件,最后清空出库临时缓存记录表。
(3)解冻列表:该功能接受来自员工账号或管理员的修改,经理账号只能对该功能对应的信息表进行查询。当员工根据出库单完成出库,部分货品进入解冻待命阶段,员工将解冻货品登记到解冻列表信息表中,该信息表每日输出保存一个日志,并在日志输出后清空解冻列表信息表中的信息。
4.2.3 信息查询模块
在本文系统中,信息查询模块将完成总库存查询,本日出库以及临期货品提醒三个功能。其中,经理账号以及管理员只能对该功能相关信息进行查询,员工类账号没有访问该功能模块的权限。
(1)总库存:该功能将统计入库与出库功能带来的变化,统计一份总库存表,并输出一份带有日期的日志
(2)本日出库:该功能将统计一日之内的所有出库记录并整合成表,该表每日更新,不保存旧信息。
(3)临期货品:该功能根据入库操作时的登记信息,对有效期只剩两个月的货品进行筛选,并将筛选结果汇聚成表,以便查询。
4.2.4 信息管理模块
在本文系统中,信息查询功能将完成总库信息以及出库信息。该功能仅供管理员级账号使用。
(1)总库信息:该功能可使管理员对总库存信息表的进行实时的增加、删减、修改、查询的信息操作行为。当入库信息表,出库信息表发生信息变动,总库信息表没有进行更新或更新信息不符,可以使用该功能手动输入。
(2)入库信息:该功能可使管理员对入库存信息表的进行实时的增加、删减、修改、查询的信息操作行为,主要用于对入库信息表进行纠错。
(3)出库信息:入库信息:该功能可使管理员对出库存信息表的进行实时的增加、删减、修改、查询的信息操作行为,主要用于对出库信息表进行纠错。
4.3.1 数据库设计概述
在本文系统中,数据库是不可或缺的,起了非常重要的作用,一个完整的数据库不仅能使项目更快的完成,并且使本文系统功能真正走向现实。因此,在本文系统配套后端数据库的设计中,应当满足管理员(店长),经理,员工三个角色的具体需求创建具体的数据库。在本系统中,管理员(店长)属于领导组。经理以及员工输入职工组。
4.3.2 概念设计
在本节的数据库分析中,以E-R图形式建立对应关系,有具体关系如下(见表4-1):
表4-1 数据库分析-对应关系
概念 |
描述 |
实体 |
一个可保持不间断利用数据的大集合 |
属性 |
具体物体的显著特征 |
关系 |
数据实体之间的逻辑连接 |
系统后端描述应当目的清晰,角色间分工明确,权限分明,利用以上描述帮助代码的实现人员在编程阶段完成该系统,根据本文系统的具体需求,有系统总体的E-R图如下图所示。(见图4-2)
图4-2 系统E-R图
4.3.3 表设计
经系统分析,数据库表设计应当满足以下要求:
1、建立满足客户需要的数据库规划。
2、每个功能应有对应数据库表,完成信息隔离。
3、应有完善的权限设计,对应用户的不同权限。
本小型冷库管理系统表主要包括职工表,库存表、入库表、出库表、临期货品表,具体如下所示(见表4-2至表4-6):
表4-2 职工表
序号 |
字段名 |
字段类型 |
空值 |
描述 |
1 |
User_id |
int(11) |
非空 |
用户id |
2 |
username |
varchar(255) |
空 |
用户名 |
3 |
password |
varchar(255) |
空 |
密码 |
4 |
name |
varchar(50) |
空 |
名字 |
5 |
Position |
varchar(50) |
空 |
职位 |
6 |
Phone_Num |
int(11) |
空 |
手机号码 |
7 |
varchar(255) |
空 |
电子邮箱 |
表4-3 库存表
序号 |
字段名 |
字段类型 |
空值 |
描述 |
1 |
Item_id |
int(11) |
非空 |
货物id |
2 |
Item_name |
varchar(255) |
空 |
货物名 |
3 |
Item_type |
varchar(255) |
空 |
货物类型 |
4 |
update_by |
bigint(20) |
空 |
更新人 |
5 |
update_date |
datetime |
空 |
更新时间 |
6 |
Item_Num |
int(11) |
空 |
货品个数 |
7 |
Item_utime |
varchar(255) |
空 |
保质期 |
表4-4 入库表
序号 |
字段名 |
字段类型 |
空值 |
描述 |
1 |
Item_id |
int(11) |
非空 |
货物id |
2 |
Item_name |
varchar(255) |
空 |
货物名 |
3 |
Item_type |
varchar(255) |
空 |
货物类型 |
4 |
create_by |
bigint(20) |
空 |
创建者 |
5 |
In_date |
datetime |
空 |
入库时间 |
6 |
Item_Num |
int(11) |
空 |
货品个数 |
7 |
Item_utime |
varchar(255) |
空 |
保质期 |
8 |
remarks |
varchar(255) |
非空 |
备注信息 |
表4-5 入库表
序号 |
字段名 |
字段类型 |
空值 |
描述 |
1 |
Item_id |
int(11) |
非空 |
货物id |
2 |
Item_name |
varchar(255) |
空 |
货物名 |
3 |
Item_type |
varchar(255) |
空 |
货物类型 |
4 |
create_by |
bigint(20) |
空 |
创建者 |
5 |
Out_date |
datetime |
空 |
出库时间 |
6 |
Item_Num |
int(11) |
空 |
货品个数 |
7 |
Item_utime |
varchar(255) |
空 |
保质期 |
8 |
remarks |
varchar(255) |
非空 |
备注信息 |
表4-6 临期货品表
序号 |
字段名 |
字段类型 |
空值 |
描述 |
1 |
Item_id |
int(11) |
非空 |
货物id |
2 |
Item_name |
varchar(255) |
空 |
货物名 |
3 |
Item_type |
varchar(255) |
空 |
货物类型 |
6 |
Item_Num |
int(11) |
空 |
货品个数 |
表4-6(续表)
序号 |
字段名 |
字段类型 |
空值 |
描述 |
7 |
Item_utime |
varchar(255) |
空 |
保质期 |
8 |
remarks |
varchar(255) |
非空 |
备注信息 |
4.4.1 账号管理模块功能
该模块功能由三个功能页面组成并完成功能,分别为:登录页(LoginActivity.java)、注册页(RegisterActivity.java)以及账号管理页(UserManageActivity,java)组成。其中账号管理页实现账号信息管理以及账户注销两个功能,且账号管理功能将只在功能页有独立入口。该模块功能的主要目的是提供用户账号的注册,登录与管理。
登录页功能:在登录页的输入框内输入账号以及密码,随后可以通过“登录”按钮进行登录操作,若账号或密码任一出现错误,则弹出提示:登录失败,请检查账号密码。若登录成功,则从登录页跳转到功能页(见图4-5)。同时在登录页提供“注册”按钮,方便直接从登录页跳转到注册页。因为Android Studio的自带登录模板存在功能冗余,因此在该功能中没有使用Android Studio自带的LoginActivity模板进行实现,而是采用了自构建的函数实现。(见图4-3)
账号注册页:在登录页通过注册按钮跳转到注册页,在注册页的输入框输入完备信息后,可以通过注册按钮完成正好注册,若输入的任意信息不规范,将弹窗返回信息:注册失败。可以通过“返回”按钮返回到登录页。当成功注册,将从注册页直接跳转到功能页,不再返回到登录页重复登录流程。同样的,因为Android Studio的自带注册模板存在功能冗余,因此在该功能中没有使用Android Studio自带的LoginActivity模板进行实现,而是采用了自构建的函数实现。(见图4-4)
图4-3 登录页
图4-4 注册页
图4-5 功能页
登录与注册功能流程图如下(见图4-6):
图4-6 登录与注册功能流程图