智能制造云平台---附源码79117
目 录
摘要
1 绪论
1.1 研究背景和意义
1.2开发技术
1.2.1 Flask框架
1.2.2 Python简介
1.2.3 MySQL数据库
1.3论文结构与章节安排
2系统分析
2.1 可行性分析
2.2总体设计原则
2.3 系统流程分析
2.3.1 用户登录流程
2.3.2 删除信息流程
2.4 系统角色分析
2.5 系统用例分析
2.6本章小结
3 系统设计
3.1 系统架构设计
3.2 系统结构设计
3.3 数据库设计
3.3.1 数据库概念结构设计
3.3.2 数据库表设计
3.4本章小结
4 系统实现
4.1注册用户功能模块
4.1.1 用户注册界面
4.1.3 用户登录界面
4.1.3 前台首页界面
4.1.4 新闻资讯界面
4.1.5 产品信息界面
4.1.6 个人中心界面
4.2管理员功能模块
4.2.1 系统用户界面
4.2.2产品信息管理界面
4.2.3工厂信息管理界面
4.2.4系统管理界面
4.2.5公告通知管理界面
4.2.6资源管理界面
4.3员工用户功能模块
4.3.1 订单信息管理界面
4.3.2 取消信息管理界面
4.3.3 排产信息管理界面
5系统测试
5.1测试目的
5.2 测试用例
5.3 测试结果
6 结论
参考文献
致 谢
摘要
随着新兴经济体的崛起,全球制造业竞争愈发激烈。我国作为制造业大国,面临着从“大”到“强”的转型压力。智能制造成为了我国制造业转型升级的重要途径。随着互联网、大数据、人工智能等信息技术的发展,制造业正面临着前所未有的机遇。智能制造云平台将信息技术与制造业深度融合,为制造业创新发展提供强大动力。此外,我国政府高度重视智能制造发展,出台了一系列政策措施,为智能制造云平台的研究与应用提供了良好的政策环境。
本文提出的智能制造云平台是采用Flask框架进行开发。Flask作为一种轻量级、易扩展的Web框架,非常适合用于开发智能制造云平台。通过采用Flask技术构建智能制造云平台,可以推动Web技术的创新和应用,为智能制造领域的发展提供技术支持。
关键词:制造业;智能制造云平台;Flask
Abstract
With the rise of emerging economies, global manufacturing competition has become increasingly fierce. As a major manufacturing country, China is facing the pressure of transformation from "big" to "strong". Intelligent manufacturing has become an important way for China's manufacturing industry to transform and upgrade. With the development of Internet, big data, artificial intelligence and other information technologies, the manufacturing industry is facing unprecedented opportunities. The intelligent manufacturing cloud platform deeply integrates information technology with the manufacturing industry, providing strong impetus for the innovative development of the manufacturing industry. In addition, the Chinese government attaches great importance to the development of intelligent manufacturing and has introduced a series of policy measures, providing a good policy environment for the research and application of intelligent manufacturing cloud platforms.
The intelligent manufacturing cloud platform proposed in this article is developed using the Flask framework. Flask, as a lightweight and easily scalable web framework, is very suitable for developing intelligent manufacturing cloud platforms. By adopting Flask technology to build an intelligent manufacturing cloud platform, innovation and application of web technology can be promoted, providing technical support for the development of the intelligent manufacturing field.
Keywords: manufacturing Intelligent manufacturing cloud platform; Flask
1 绪论
1.1 研究背景和意义
Flask是一个轻量级的Web应用框架,用Python编写,具有高扩展性、灵活性、易上手等特点。它适合开发小型到中型的应用,同时也能够通过扩展支持大型企业级应用。使用Flask框架开发智能制造云平台,可以充分利用其技术优势,实现快速开发、灵活部署、易于维护等功能。
通过采用Flask技术构建智能制造云平台,企业可以实现生产过程的数字化、网络化和智能化,实现资源的合理配置和高效利用,从而推动产业升级和可持续发展,进而提升企业的核心竞争力和市场地位。这对于企业在激烈的市场竞争中脱颖而出具有重要意义。
1.2开发技术
本系统采用B/S模式,前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分基于python的Flask框架进行开发。
1.2.1 Flask框架
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。一般情况下,它不会指定数据库和模板引擎等对象,用户可以根据需要自己选择各种数据库。Flask自身不会提供表单验证功能,在项目实施过程中可以自由配置,从而为应用程序开发提供数据库抽象层基础组件,支持进行表单数据合法性验证、文件上传处理、用户身份认证和数据库集成等功能。
Flask主要包括Werkzeug和Jinja2两个核心函数库,它们分别负责业务处理和安全方面的功能,这些基础函数为web项目开发过程提供了丰富的基础组件。Werkzeug库十分强大,功能比较完善,支持URL路由请求集成,一次可以响应多个用户的访问请求;支持Cookie和会话管理,通过身份缓存数据建立长久连接关系,并提高用户访问速度;支持交互式Javascript调试,提高用户体验;可以处理HTTP基本事务,快速响应客户端推送过来的访问请求。Jinja2库支持自动HTML转移功能,能够很好控制外部黑客的脚本攻击。系统运行速度很快,页面加载过程会将源码进行编译形成Python字节码,从而实现模板的高效运行;模板继承机制可以对模板内容进行修改和维护,为不同需求的用户提供相应的模板。目前Python的web框架有很多。除了Flask,还有django、Web2py等等。其中Django是目前Python的框架中使用度最高的。但是Django如同java的EJB(EnterpriseJavaBeansJavaEE服务器端组件模型)多被用于大型网站的开发,但对于大多数的小型网站的开发,使用SSH(Struts+Spring+Hibernat的一个JavaEE集成框架)就可以满足,和其他的轻量级框架相比较,Flask框架有很好的扩展性,这是其他Web框架不可替代的。
1.2.2 Python简介
早在上个世纪90年代,Python就由吉多·范罗苏姆进行创造,自诞生之日起,Python就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Python语言是真的是一种纯面向对象的计算机语言,在Python的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Python中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Python另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Python也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Python编程语言进行后台的开发,一是鉴于标准化制定以后,Python语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Python代码的能力。
1.2.3 MySQL数据库
MySQL 经过多次的更新,功能层面已经非常的丰富和完善了,从MySQL4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的MySQL支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。
1.3论文结构与章节安排
论文将分层次进行编排,除去论文摘要致谢文献参考部分,正文部分主要结构如下:
第一章:绪论,此章节对所设计和实现的系统的背景、意义及开发技术进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章:系统分析,此章节所做的主要的工作是对系统进行了技术、社会等方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章:系统设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章:系统实现,根据系统功能的划分,分别的对系统所需要实现的前台用户功能和后台管理员及员工用户功能进行了分析和说明。
第五章:系统测试,主要介绍了系统测试目的和对系统的部分功能界面进行测试并对测试结果作出总结。
第六章:结论,主要对系统的开发设计工作进行总结。
2系统分析
2.1 可行性分析
Flask是一个轻量级但功能强大的Web框架,它使用Python编写,具有丰富的库和工具支持,易于开发和维护。同时,Flask具有高度的可扩展性,可以通过扩展和插件来满足智能制造云平台的各种需求。因此,从技术角度来看,使用Flask开发智能制造云平台是完全可行的。
(2)操作可行性
采用Flask开发的智能制造云平台需要具有友好的用户界面和易于操作的功能。Flask框架配合各种前端VUE技术可以实现美观、易用的用户界面。同时,平台提供清晰的操作流程和明确的指导,使操作人员能够快速上手并使用平台。因此,从操作角度来看是可行的。
- 社会可行性
智能制造云平台的发展需要得到社会各方面的支持和认可。随着工业4.0和智能制造的推进,越来越多的企业和机构开始关注并投入到智能制造领域。同时,政府也出台了一系列政策和措施来支持智能制造的发展。因此,从社会角度来看,智能制造云平台具有广阔的发展前景和可行性,是可行的。
2.2总体设计原则
一个系统要在开发和维护的过程中方便使用,必须采取一定的设计原则,其主要设计原则有:
简单性:系统功能简单易懂,只需要掌握基本的计算机操作能力即可使用。
针对性:针对特定的用户,没有多余的其他功能,使用户可以专心使用。
实用性:能够满足用户查看产品信息、订单信息、工厂信息等方面的需求。
先进性:本系统的代码采用读取数据的方式,方便后续开发、拓展。
2.3 系统流程分析
系统流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
2.3.1 用户登录流程
登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图2-1所示。
图2-1 用户登录流程图
2.3.2 删除信息流程
用户可选择要删除的信息并进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图2-2所示。
图2-2 删除信息流程图
2.4 系统角色分析
按照智能制造云平台的角色,主要包括注册用户、管理员和员工用户这三大角色,各角色功能如下:
- 注册用户功能
- 注册登录:新用户可以通过注册成为系统用户,注册后可用账号密码登录。
- 首页:用户可以查看首页展示的轮播图、新闻资讯和产品信息推荐等信息。
- 公告通知:用户可以查看系统发布的网站公告、关于我们、联系方式、网站介绍等信息。
- 新闻资讯:用户可以查看新闻资讯列表中某个资讯的详细信息并可以点赞、收藏和评论。
- 产品信息:用户可以查看系统发布的所有产品信息,点击产品信息列表中某个产品进入页面可以查看该产品的详情并可以下单、点赞、收藏和评论。
- 我的:用户点击我的头像的下拉菜单“我的账户”进入页面可以修改个人信息和登录密码;点击“个人中心”进入页面可以查看和管理个人首页、订单信息、取消信息、排产信息和收藏信息;点击“退出”即可退出系统登录。
- 管理员功能
- 登录:管理员可以通过在后台输入正确的账号和密码进行登录。
- 后台首页:管理员可以查看后台首页展示的相关信息。
- 系统用户:管理员可以查看所有系统用户的信息,同时负责对员工用户账号的添加。
- 产品信息管理:管理员可以添加新的产品信息,可以查看已有的产品信息列表中某个产品的详情和评论信息,可以对列表信息进行查询和删除操作。订单信息管理:管理员可以查看订单信息列表中某个用户的订单信息详情和支付信息。
- 取消信息管理:管理员可以查看取消信息列表中某个用户的取消信息详情,可以查询和删除取消信息。
- 工厂信息管理:管理员可以添加工厂信息,可以查看已有的工厂信息列表中某个工厂的信息详情,可以对工厂信息进行查询、重置和删除操作。
- 排产信息管理:管理员可以查看排产信息列表中某个用户订单的排产信息详情;可以查询和删除排产信息。
- 系统管理:在系统管理界面,管理员可以查看所有轮播图信息,可以对系统轮播图信息进行查询、添加和删除操作。
- 公告通知管理:管理员可以查看所有公告通知信息,可以对公告通知信息进行查询、添加和删除操作。
- 资源管理:在资源管理界面,管理员对新闻资讯和资讯分类信息进行管理。管理可以对新闻资讯和资讯分类信息进行查询、添加和删除操作。
- 我的:管理员可以修改个人信息和登录密码;可以浏览网站首页;点击“退出”即可退出系统的登录。
- 员工用户功能
- 登录:员工用户账号由管理员添加,用户可以用管理员提供的账号密码登录系统。
- 后台首页:用户可以查看后台首页展示的相关信息。
- 产品信息管理:用户可以查看产品信息列表中某个产品的详情,可以查询和删除产品信息。
- 订单信息管理:用户可以查看订单信息列表中某个用户的订单信息详情并提交订单押金和订单状态信息;已支付的订单可以提交推产信息。
- 取消信息管理:用户可以查看取消信息列表中某个用户提交的取消信息详情并提交取消状态信息;可以通过输入产品名称查询客户取消信息。
- 排产信息管理:用户可以查看排产信息列表中某个用户订单的排产信息详情;可以查询和删除排产信息。
- 我的:用户可以修改个人信息和登录密码;可以浏览网站首页;点击“退出”即可退出系统的登录。
2.5 系统用例分析
通过2.3的角色分析,得出了本智能制造云平台的用例图:
注册用户角色用例图如下图2-3所示。
图2-3 注册用户角色用例图
管理员角色用例图如下图2-4所示。
图2-4 管理员角色用例图
员工用户角色用例图如下图2-5所示。
图2-5员工用户角色用例图
2.6本章小结
本章主要通过对智能制造云平台的可行性分析、流程分析、系统角色分析、系统用例分析,确定整个系统要实现的功能。同时也为智能制造云平台的代码实现和测试提供了标准。
3 系统设计
本章主要讨论的内容包括智能制造云平台的架构设计、结构设计、数据库系统设计。
3.1 系统架构设计
本智能制造云平台从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1 系统架构设计图
表现层(UI):又称UI层,主要完成本系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本系统时的舒适度。UI的界面设计也要适应不同版本的系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本系统的数据是放在服务端的MySQL数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本智能制造云平台的数据存储和管理功能。
3.2 系统结构设计
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。智能制造云平台结构图如图3-2所示。
图3-2 系统结构图
3.3 数据库设计
数据库可以说是所有软件的根本,如果数据库存在缺陷,那么会导致系统开发的不顺利、维护困难、用户使用不顺畅等一系列问题,严重时将会直接损害企业的利益,同时在开发完成后,数据库缺陷也更加难以解决。所以必须要对数据库设计重点把握,做到认真细致。因此,数据库设计是智能制造云平台的重点要素。
3.3.1 数据库概念结构设计
下面是整个智能制造云平台中主要的数据库表总E-R实体关系图。
图3-3 系统总E-R关系图
3.3.2 数据库表设计
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。本系统的主要数据库表如下所示:
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表article (文章:用于内容管理系统的文章)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
表article_type (文章分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表cancel_information (取消信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cancel_information_id | int | 10 | 0 | N | Y | 取消信息ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
4 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
5 | cancel_user | int | 10 | 0 | Y | N | 0 | 取消用户 |
6 | cancel_time | datetime | 19 | 0 | Y | N | 取消时间 | |
7 | cancel_quantity | int | 10 | 0 | Y | N | 0 | 取消数量 |
8 | cancel_status | varchar | 64 | 0 | Y | N | 取消状态 | |
9 | reason_for_cancellation | varchar | 64 | 0 | Y | N | 取消原因 | |
10 | cancel_remarks | text | 65535 | 0 | Y | N | 取消备注 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表employee_users (员工用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | employee_users_id | int | 10 | 0 | N | Y | 员工用户ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_title | varchar | 64 | 0 | Y | N | 员工职称 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表factory_information (工厂信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | factory_information_id | int | 10 | 0 | N | Y | 工厂信息ID | |
2 | factory_number | varchar | 64 | 0 | Y | N | 工厂编号 | |
3 | factory_name | varchar | 64 | 0 | Y | N | 工厂名称 | |
4 | yield_a_product | varchar | 64 | 0 | Y | N | 生产产品 | |
5 | production_efficiency | varchar | 64 | 0 | Y | N | 生产效率 | |
6 | factory_responsible | varchar | 64 | 0 | Y | N | 工厂负责 | |
7 | contact_information | varchar | 64 | 0 | Y | N | 联系方式 | |
8 | factory_details | longtext | 2147483647 | 0 | Y | N | 工厂详情 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表order_information (订单信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_information_id | int | 10 | 0 | N | Y | 订单信息ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
4 | product_price | varchar | 64 | 0 | Y | N | 产品价格 | |
5 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
6 | ordering_users | int | 10 | 0 | Y | N | 0 | 下单用户 |
7 | order_time | datetime | 19 | 0 | Y | N | 下单时间 | |
8 | order_quantity | int | 10 | 0 | Y | N | 0 | 下单数量 |
9 | deposit_amount | int | 10 | 0 | Y | N | 0 | 押金金额 |
10 | order_remarks | text | 65535 | 0 | Y | N | 下单备注 | |
11 | order_status | varchar | 64 | 0 | Y | N | 订单状态 | |
12 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
13 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表production_scheduling_information (排产信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | production_scheduling_information_id | int | 10 | 0 | N | Y | 排产信息ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
4 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
5 | ordering_users | int | 10 | 0 | Y | N | 0 | 下单用户 |
6 | production_factory | varchar | 64 | 0 | Y | N | 生产工厂 | |
7 | expected_cycle | varchar | 64 | 0 | Y | N | 预计周期 | |
8 | start_time | datetime | 19 | 0 | Y | N | 开始时间 | |
9 | production_quantity | int | 10 | 0 | Y | N | 0 | 生产数量 |
10 | production_status | varchar | 64 | 0 | Y | N | 生产状态 | |
11 | production_details | longtext | 2147483647 | 0 | Y | N | 生产详情 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表product_information (产品信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_information_id | int | 10 | 0 | N | Y | 产品信息ID | |
2 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
4 | product_quantity | int | 10 | 0 | Y | N | 0 | 产品数量 |
5 | product_price | int | 10 | 0 | Y | N | 0 | 产品价格 |
6 | production_schedule | varchar | 64 | 0 | Y | N | 生产工期 | |
7 | product_type | varchar | 64 | 0 | Y | N | 产品类型 | |
8 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
9 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
10 | ordering_notice | text | 65535 | 0 | Y | N | 下单须知 | |
11 | product_details | longtext | 2147483647 | 0 | Y | N | 产品详情 | |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表registered_users (注册用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户名称 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_age | int | 10 | 0 | Y | N | 0 | 用户年龄 |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个智能制造云平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 系统实现
4.1注册用户功能模块
4.1.1 用户注册界面
用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。注册界面应该进行输入验证和数据格式检查,确保用户提供有效的信息。系统会对输入的信息进行验证,验证通过后即可完成注册。其界面展示如下图4-1所示。

图4-1 用户注册界面图
注册的代码如下:
# 用户类
class User(controllerClass):
def __init__(self, config={}):
"""
构造函数
@param {Object} config 配置参数
"""
config_init = {
# 选择的模板那路径模板
"tpl": "./user/",
# 选择的服务
"services": "user",
# 注册API
"get_api": ["state", "quit"],
"post_api": ["login", "register", "change_password", "forget_password"],
# 唯一判断
"unique": ["username"]
}
config_temp = config
config_temp.update(config_init)
super(User, self).__init__(config_temp)
def Register(self, ctx):
"""
注册API
@param {Object} config 配置参数
"""
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
# 判断必须信息
if "username" not in body and body["username"] == '':
return {"error": {
"code": 70000,
"message": "用户名不能为空",
}}
if "user_group" not in body and body["user_group"] == '':
return {
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}
if "password" not in body and body["password"] == '':
return {
"error": {
"code": 70000,
"message": "密码不能为空",
}
}
# 取出表单
post_param = body
post_param['nickname'] = body["nickname"] or ""
post_param['password'] = md5hash(body["password"])
# 校验是否存在用户
obj = userService.Get_obj({"username": post_param['username']}, {"like": False})
if obj:
return {
"error": {
"code": 70000,
"message": "用户名已存在",
}
}
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
# 添加
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ret
4.1.3 用户登录界面
用户注册后可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,系统会对输入的信息进行验证,验证通过后即可完成登录,其界面如下图4-2所示。
图4-2用户登录界面图
登录的代码如下:
def Login(self, ctx):
"""
登录API
@param {Object} ctx http请求上下文
"""
print("===================登录=====================")
ret = {
"error": {
"code": 70000,
"message": "账户不存在",
}
}
body = ctx.body
# 获取用户
password = md5hash(body["password"]) or ""
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if obj:
# 检查用户所属用户组
user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})
if user_group and user_group['source_table'] != '':
user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},
{"like": False})
if user_obj['examine_state'] == '未通过':
ret = {
"error": {
"code": 70000,
"message": "账户未通过审核",
}
}
return ret
if user_obj['examine_state'] == '未审核':
ret = {
"error": {
"code": 70000,
"message": "账户未审核",
}
}
return ret
# 校验用户状态
if obj["state"] == 1:
# 校验密码
if obj["password"] == password:
# 生成Token
timeout = datetime.now(tz=timezone.utc)
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
# 存储Token
# session[token] = obj["user_id"]
session.setdefault(token, obj["user_id"])
session.permanent = True
service_select("access_token").Add(
{"token": token, "user_id": obj["user_id"]}
)
# 回传用户
obj["token"] = token
ret = {
"result": {"obj": obj}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "用户账户不可用,请联系管理员",
}
}
return ret
4.1.3 前台首页界面
系统首页以上中下的布局进行展示,正上方是系统的导航栏,中间是轮播图,下面是新闻资讯、产品信息推荐等信息。其主界面展示如下图4-3所示。
图4-3 前台首页界面图
4.1.4 新闻资讯界面
用户可以查看系统发布的新闻资讯信息。点击新闻资讯列表中某个资讯可以查看该资讯的的详细信息并可以点赞、收藏和评论,支持通过局部搜索新闻资讯信息。其界面如图4-4所示。
图4-4 新闻资讯界面图
4.1.5 产品信息界面
用户可以查看系统发布的所有产品信息,点击产品信息列表中某个产品进入页面可以查看该产品的详情并可以下单、点赞、收藏和评论。点击详情下方的“下单”进入页面填写下单数量和下单备注信息后点击“提交”即可完成下单。支持通过关键字搜索、下拉搜索方式搜索查找产品信息。其界面如下图4-5所示:
图4-5 产品信息界面图
4.1.6 个人中心界面
用户点击我的头像的下拉菜单“个人中心”进入页面可以查看和管理个人首页、订单信息、取消信息、排产信息和收藏信息。可以查看订单信息列表中某个订单详情并可以通过微信、支付宝等方式完成支付,也可以对订单进行取消;可以查看排产信息列表中某个订单的排产详情;可以查询和重置订单、排产信息;可以对取消信息进行增删改查操作;可以查看或删除收藏列表信息其界面如下图4-6所示:
图4-6 个人中心界面图
添加的代码如下:
def Add(self, ctx):
"""
增
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
body = ctx.body
unique = self.config.get("unique")
obj = None
if unique:
qy = {}
for i in range(len(unique)):
key = unique[i]
qy[key] = body.get(key)
obj = self.service.Get_obj(qy)
if not obj:
# 添加数据前
error = self.Add_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("add_before", ctx, None)
if error["code"]:
return {"error": error}
# 添加数据
result = self.service.Add(body, self.config)
# 添加数据发生错误
if self.service.error:
return {"error": self.service.error}
# 添加数据成功后
res = self.Add_after(ctx, result)
if res:
result = res
res = self.Events("add_after", ctx, result)
if res:
result = res
return {"result": result}
else:
return {"error": {"code": 10000, "message": "已存在"}}
4.2管理员功能模块
4.2.1 系统用户界面
管理员可以查看所有系统用户的信息,同时负责对员工用户账号的添加。可以对系统用户(管理员、注册用户、员工用户)信息进行查询、添加和删除操作。其界面如下图4-7所示。
图4-7系统用户界面图
删除的代码如下:
# 删
def Del(self, ctx):
"""
删
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
if len(ctx.query) == 0:
errorMsg = {"code": 30000, "message": "删除条件不能为空!"}
return errorMsg
result = self.service.Del(ctx.query, self.config)
if self.service.error:
return {"error": self.service.error}
return {"result": result}
4.2.2产品信息管理界面
管理员可以添加新的产品信息,可以查看已有的产品信息列表中某个产品的详情和评论信息,可以对列表信息进行查询和删除操作。其界面如下图4-8所示。
图4-8产品信息管理界面图
4.2.3工厂信息管理界面
管理员可以添加工厂信息,可以查看已有的工厂信息列表中某个工厂的信息详情,可以对工厂信息进行查询、重置和删除操作。其界面如下图4-9所示。
图4-9工厂信息管理界面图
4.2.4系统管理界面
在系统管理界面,管理员可以查看所有轮播图信息,可以对系统轮播图信息进行查询、添加和删除操作。其界面如下图4-10所示。
图4-10系统管理界面图
4.2.5公告通知管理界面
管理员可以查看所有公告通知信息,可以对公告通知信息进行查询、添加和删除操作。其界面如下图4-11所示。
图4-11公告通知管理界面图
4.2.6资源管理界面
在资源管理界面,管理员对新闻资讯和资讯分类信息进行管理。管理员可以查看新闻资讯列表中某个资讯的详情和评论信息,可以对新闻资讯和资讯分类信息进行查询、添加和删除操作。其界面如下图4-12所示。
4.3员工用户功能模块
4.3.1 订单信息管理界面
用户可以查看订单信息列表中某个用户的订单信息详情并提交订单押金和订单状态信息;已支付的订单可以提交推产信息;可以查询和删除订单信息。其界面如下图4-13所示。
图4-13订单信息管理界面图
4.3.2 取消信息管理界面
用户可以查看取消信息列表中某个用户提交的取消信息详情并提交取消状态信息;可以通过输入产品名称查询客户取消信息。其界面如下图4-14所示。
图4-14取消信息管理界面图
4.3.3 排产信息管理界面
用户可以查看排产信息列表中某个用户订单的排产信息详情;可以通过输入产品名称或选择生产状态查询排产信息;选择某个或多个信息后点击“删除”即可删除排产信息。其界面如下图4-15所示。
图4-15排产信息管理界面图
5系统测试
5.1测试目的
系统测试的目的是确保系统的功能完整、性能稳定,并验证系统是否符合预期的设计和需求。通过系统测试,可以发现和修复潜在的错误和缺陷,提高系统的质量和可靠性。同时,系统测试还可以评估系统在不同条件下的性能表现,包括并发性能、响应时间和容错能力等。通过全面的系统测试,可以确保系统在正式上线前达到高品质的状态。
5.2 测试用例
系统测试包括:用户登录功能测试、产品信息查看功能测试、工厂信息添加功能测试、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
用户登录功能测试:
表5-1 用户登录功能测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 使用正确的用户名和密码进行登录 | 成功登录系统,跳转到用户首页 | 登录成功,跳转到用户首页 | 通过 |
TC002 | 使用不存在的用户名进行登录 | 显示错误提示信息:用户名不存在 | 显示错误提示信息:用户名不存在 | 通过 |
TC003 | 使用正确的用户名和错误的密码进行登录 | 显示错误提示信息:密码错误 | 显示错误提示信息:密码错误 | 通过 |
TC004 | 不输入用户名和密码直接点击登录按钮 | 显示错误提示信息:用户名和密码不能为空 | 显示错误提示信息:用户名和密码不能为空 | 通过 |
产品信息查看功能测试:
表5-2 产品信息查看功能测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 打开产品信息页面,检查是否能够正确展示产品信息列表信息 | 产品信息列表显示正确 | 产品信息列表显示正确 | 通过 |
TC002 | 点击产品信息查看按钮,检查是否能正常打开页面 | 产品信息详情页面显示正确 | 产品信息详情页面显示正确 | 通过 |
TC003 | 检查产品信息搜索功能 | 根据关键字搜索到相关产品信息并正确展示 | 根据关键字搜索到相关产品信息并正确展示 | 通过 |
管理员添加工厂信息界面测试:
表5-3 管理员添加工厂信息界面测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 使用合法的信息添加一个新的工厂信息 | 工厂信息成功添加到系统 | 工厂信息成功添加到系统 | 通过 |
TC002 | 使用已存在的工厂名称添加一个工厂信息 | 显示错误提示信息:工厂名称已存在 | 显示错误提示信息:工厂名称已存在 | 通过 |
TC003 | 添加工厂信息时不输入必填信息 | 显示错误提示信息:必填字段不能为空 | 显示错误提示信息:必填字段不能为空 | 通过 |
TC004 | 使用不存在的关键字进行搜索 | 搜索结果为空 | 搜索结果为空 | 通过 |
表5-4密码修改功能测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 输入正确的原密码和新密码进行修改 | 密码成功修改 | 密码成功修改 | 通过 |
TC002 | 输入错误的原密码和新密码进行修改 | 显示错误提示信息:原密码错误 | 显示错误提示信息:原密码错误 | 通过 |
TC003 | 不输入原密码和新密码直接点击修改按钮 | 显示错误提示信息:密码不能为空 | 显示错误提示信息:密码不能为空 | 通过 |
5.3 测试结果
通过编写智能制造云平台的测试用例,已经检测完毕系统测试包括:用户登录功能测试、产品信息查看功能测试、工厂信息添加功能测试、密码修改功能测试,通过这四大模块为智能制造云平台的后期推广运营提供了强力的技术支撑。
6 结论
在开发智能制造云平台之前,需对用户的实际需求进行分析。这不仅包括对系统的可行性研究,还包括对功能需求和其他需求的详细分析。在可行性分析阶段,本人从技术性和经济性等多个角度对系统实现的可能性进行了全面评估,结果表明,该系统的实施是可行的。
本文首先概述了智能制造云平台开发的背景及其意义,接着详细阐述了系统的具体业务需求,并根据这些需求对系统的结构以及功能模块进行了精细的设计。这个系统划分为多个独特的功能模块,每个模块都具有其独特的功能和作用。
在深入分析系统功能需求的过程中,本人对系统的总体架构和功能模块进行了深入研究,并选择了最适合的系统开发技术来完成各个模块的开发工作。系统开发完成后进行了系统的测试。测试结果表明,该系统在功能和性能方面都满足了预期的要求,具有极高的稳定性和可靠性。
参考文献
[1]吴小凤,王天淼,朱文秀.基于Flask框架的监控平台可视化设计研究[J].工业控制计算机,2024,37(03):90-91.
[2]王小伟.促进先进智能技术与制造业融合创新[N].证券时报,2024-03-05(A04).
[3]陈泽帆,郭苗梓,李满,等.基于Python语言的成本管理系统设计与开发[J].锻造与冲压,2024,(04):26-30.
[4]段春艳,王佳洁,王皓博,等.智能制造系统可靠性与风险评估模型[J].同济大学学报(自然科学版),2024,52(02):313-322.
[5]田文涛.Python技术在计算机软件中的应用[J].集成电路应用,2024,41(02):344-346.
[6]张相木.智能制造的内涵和核心环节[J].电气时代,2024,(01):28-30.
[7]何涛.基于人工智能技术的智能制造系统设计与优化[J].中国高新科技,2023,(23):37-39.
[8]姜小云,吴俞,张永莉.基于Flask的气象装备远程维修指导系统设计与实现[J].电子设计工程,2023,31(23):50-53.
[9]杨洪涛.Flask中ORM模型的应用及研究[J].电脑编程技巧与维护,2023,(10):49-51+75.
[10]蔡萍,赵文忠.基于智能制造的协同共享服务云平台研究[J].智能制造,2023,(05):87-89.
[11]杨梓嘉.机电一体化技术在智能制造中的应用[J].电子技术,2023,52(09):49-51.
[12]王炎.四川:推动智能制造由点到线由线到面系统发展[N].四川经济日报,2023-06-05(002).
[13]李朝杨.Flask应用的XSS和CSRF漏洞检测方法研究[D].华北理工大学,2023.
[14]智能制造企业工业互联网平台安全防护建设[J].自动化博览,2022,39(01):114-115.
[15]任燕,户燕会.基于云平台和虚拟仿真软件的农机部件智能制造系统[J].农机化研究,2022,44(06):232-235+244.
[16]蒋小军,基于云服务平台的高精密注塑成型装备智能制造技术开发及产业化.广东省,广东伊之密精密注压科技有限公司,2021-05-28.
[17]娄高翔.云制造环境下面向过程的生产调度问题研究[D].长安大学,2021.
[18] Sunday O B ,Nduka O S . MySQL Database Server: Deploying Software Application to Enhance Visibility and Accountability [J]. Current Journal of Applied Science and Technology, 2023, 42 (4): 16-23.
[19]FUIOR F .Introduction in Python frameworks for web development[J].Romanian Journal of Information Technology and Automatic Control,2021,31(3):
[20]Uchenna I U ,Gregory S U ,Virginus N U , et al.Exploring a Secured Socket Python Flask Framework in Real Time Communication System[J].Asian Journal of Research in Computer Science,2021,77-87.
致 谢
大学生活在这个时候即将划上一个句号,但是对于我的人生道路来说,这仅仅是一个逗号,我将面对的是又一次征程的开始。
回忆过去,许许多多的事情浮现在脑海:刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢信息学院所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。
最后,我要特别感谢指导智能制造云平台设计的老师。本论文是在他的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。老师无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向老师表示衷心的感谢和崇高的敬意,谢谢他细心而又耐心地辅导,使得我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助,在此一并表示感谢。
点赞+收藏+关注 →私信领取本源代码、数据库
相关文章:

智能制造云平台---附源码79117
目 录 摘要 1 绪论 1.1 研究背景和意义 1.2开发技术 1.2.1 Flask框架 1.2.2 Python简介 1.2.3 MySQL数据库 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2总体设计原则 2.3 系统流程分析 2.3.1 用户登录流程 2.3.2 删除信息流程 2.4 系统角色分析 2.5 系…...

降本、创新、合作,谁才是连接器行业破除内卷的关键词?
如果用一个字来评价2024年的汽车行业,那就是「卷」。 ▲中国汽车保有量不断提升 图/Pixabay 长安汽车董事长朱华荣说:“汽车行业的卷,让中国品牌达到了新高度。” 吉利董事长李书福说:“中国汽车工业内卷程度全球第一,…...

可能一拆为二,英特尔为何走到今天这一步?
【科技明说 | 科技热点关注】 近来看到外媒消息说,英特尔迫于经营压力,也不得不铤而走险,欲将英特尔一分为二,即芯片制造与芯片设计分离开,互相剥离,独立发展。 于是乎,英特尔将分拆…...

了解Redis集群概念,集群如何选举主节点
请给胡广一个免费的三连吗?感谢! 1. Redis集群 1.1 集群概念 Redis主从架构和Redis集群架构是两种不同的概念,大家刚接触Redis时经常弄混淆。胡广给大家贴下Redis官网对两者的解释。 (1)Redis主从架构 Redis主从实…...

Ozon跨境商家提升销量的关键:测评补单策略与必备条件
Ozon,自1998年创立以来,已稳居俄罗斯多品类电商领域的领导地位,不仅是俄罗斯最为人所熟知的电商品牌,更是该国电商行业的先驱之一。那么,对于希望在Ozon平台上实现销售爆单的跨境卖家而言,他们需要满足哪些…...

缺乏大模型经验,还有机会吗?
做大模型一年半,经历了无数场面试。 关于经验,我最常听到的候选人(尤其是学生)的说辞是:我没有大模型经验,可以给个机会吗?答案是,我们并不看重候选人的大模型训练经验。这里不是说经验不重要,而是大部分人…...

如何阅读李冬梅老师《数据结构》
根据《如何阅读一本书》第五章:主动阅读的基础:阅读者要提出的4个基本问题? 以第2章,线性表为例: (1)本章主要在谈些什么?例如第二章简介,读完这一章可以自己试着写个简…...

Python————正则表达式
正则表达式 前言一、正则表达式是什么?二、使用模块 re三、re 模块中的代码图示3.1 re模块匹配单个字符3.2 re模块匹配多个字符3.3 re模块匹配开头跟结尾3.4 re模块匹配分组3.5 扩展: 总结 前言 在实际开发过程中经常会有查找符合某些规则的字符串 比如:…...

将你的github仓库设置为web代理
将你的github仓库设置为web代理 废话不多说,直接上步骤 废话不多说,直接上步骤 创建一个仓库,上传静态web。 2. 设置仓库的 page 1)点击 “Settings” 如图设置...

CTFHub技能树-Git泄漏-Index
目录 一、Git索引(Index)的基本概念 二、解题过程 主旨:使用git泄漏恢复源代码 方法一:使用GitHack手动恢复 方法二:直接使用Git_Extract获取网站源代码拿去flag 当前大量开发人员使用git进行版本控制,…...

vb.net发送邮件:如何高效地实现邮件发送?
vb.net发送邮件怎么配置服务器?怎么用vb.net发邮件? 如何高效地实现vb.net发送邮件,确保邮件能够快速、稳定地送达,是许多开发者面临的挑战。AokSend将深入探讨vb.net发送邮件的最佳实践,帮助您提升邮件发送的效率和可…...

mycat双主高可用架构部署-水评分表-范围分片配置
MySQL5.7服务器IP是192.168.31.209及192.168.31.210 vi /usr/local/mycat/conf/schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"http://io.mycat/"><schema n…...

开发模型例题
答案:A 解析:瀑布模型是跟对需求明确的项目 增量模型是将需求分为多个阶段,适合一开始需求不明确的 演化模型适合用户需求不清,需求经常变化的情况 螺旋模型适合庞大,复杂且具有高风险的系统...

一文搞懂 TS中 函数、枚举、别名 | TypeScript 入门指南 06
大家好,我是王天~ 这篇文章是 ts入门指南系列中第6 篇,主要讲解ts中的 函数、枚举、别名应用~ 如有不对的地方 欢迎留言反馈哈 函数 在TypeScript中,可选参数和默认参数、剩余参数以及函数重载可以帮助我们更灵活地定义和使用函数。 1、可…...

基于JAVA+SpringBoot+Vue的前后端分离的图书馆管理系统
基于JAVASpringBootVue的前后端分离的图书馆管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#…...

基于SpringBoot+Vue的鲜花销售/鲜花商城/花店管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的鲜花销售…...

信号发生器在扫描模式下输出正弦波信号,需要注意设置哪些参数
在信号发生器工作于扫描模式(Sweep Mode)并输出正弦波信号的情况下,需对设备进行以下关键参数设置: 1、波形设置 选择波形:正弦波(Sine Wave) 正弦波是常见的周期性波形,在扫描模式…...

xss-labs-master通关教程
一.level1 先来进行一下代码审计 <?php ini_set("display_errors", 0);//关闭错误显示 $str $_GET["name"]; //接受URL来的get形式的name传参 echo "<h2 aligncenter>欢迎用户".$str."</h2>";//在网页输出&#x…...

断点回归模型
断点回归(Regression Discontinuity Design, RDD)是一种准实验设计方法,用于评估政策或其他干预措施的效果。这种方法利用了一个清晰的阈值或“断点”,在这个阈值上,处理状态(例如是否接受某种干预…...

app广告推送常见业务术语
DAU: 日活跃用户(Daily Active Users) GMV: 商品交易总额(Gross Merchandise Volume) DSP=demand side platform=需求方平台 DMP=data management platform数据管理平台 ADX=ad exchange=广告交…...

2024/9/11 小型PLC典型应用2:伺服canlink配置、指令、应用
下面这个指令需要设置伺服的急停方式(例如:惯性停机、急停等等) 通讯故障步骤排查 1:接线问题 2:配置问题(波特率.....)...

在IDEA中如何创建web项目?——不使用Archetype
二、不使用Archetype 1、创建Maven项目 (1)首先打开Project Structure:File——>Project Structure或者快捷键crtlaltshifts (2)Module——>New Module: (3)在新打开的页面下…...

基于C#+SQL Server2008 开发三层架构(CS界面)图书管理系统
图书管理系统 一、项目背景及意义 当今由于信息技术的飞速发展,图书馆作为社会知识信息媒介的功能日益重要,网络环境下的信息资源建设知识仓库的设计,开放存取学术交流模式,知识管理系统,智能检索,数字参…...

AIGC简化文件管理:Python自动重命名Word和PDF文件
1.背景 大家应该也有遇到,自己电脑有很多文件命名不合理的文件,比如:文件1、想法3 ,当你长时间再看到这个文件的时候,已经很难知道文件内容。 今天我们将借助AIGC的编码能力,帮我们生成一个批量改文件名的…...

产线工控安全之防勒索病毒杀手锏
在当今数字化时代,数据安全已成为企业运营中不可或缺的一部分。勒索病毒和内部泄密事件的频发,使得企业必须采取更为严格的安全措施来保护其关键数据和运营系统。苏州深信达网络科技推出的MCK主机加固解决方案,正是为了应对这些挑战而设计的。…...

超详细超实用!!!网站开发页面适配360浏览器兼容模式
云风网 云风笔记 云风知识库 开发网站偶尔会遇到需要兼容ie的需求,这里以360浏览器为例,360浏览器是基于Chrome和IE双核浏览器,在极速模式下是跟谷歌浏览器内核一致的,兼容模式下的内核是IE内核。这里尤其是360兼容模式下&#x…...

【Redis】主从复制 - 源码
因为主从复制的过程很复杂, 同时核心逻辑主要集中在 replication.c 这个文件中, 避免篇幅过大, 所以将主从复制中涉及这个文件的代码集中到了另一篇文章。 在当前文章主要分析主从复制的大体代码逻辑, 如果需要了解整体的过程, 可以配合 Redis 主从复制 - relication 源码分析 …...

Redis:缓存击穿
缓存击穿(热点key): 部分key(被高并发访问且缓存重建业务复杂的)失效,无数请求会直接到数据库,造成巨大压力 1.互斥锁:可以保证强一致性 线程一:未命中之后,获取互斥锁,再查询数据库重建缓存,写…...

一文说清什么是数据仓库
01 数据仓库的概念 数据仓库的概念可以追溯到20世纪80年代,当时IBM的研究人员开发出了“商业数据仓库”。本质上,数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型。 目前对数据仓库(Data Warehouse)的标准定义&a…...

【算法】哈希表相关
【ps】本篇有 5 道 leetcode OJ。 一、算法简介 哈希表是一种存储数据的容器,可以快速查找某个元素,其查找的时间复杂度为 O(1),非常合适需要频繁查找某一个元素的场景。其具体用法为: 直接使用底层为哈希表的 STL 容器。用数组…...