葛和勇
(上海理工大学机械工程学院,上海 200093)
随着我国制造业信息化的快速发展,越来越多的制造型企业引进先进的信息技术融入到生产中,使得生产效率和研发水平都得到极大的提高。但在高校端,信息化集成的水平和产业端仍有差距。
高校机械专业相关的课程作业及创新创业项目的协作管理所产生的数据文件大多采用线下传输,集中管理,项目迭代缓慢,同时还存在知识资源利用率低下的问题。许多设计的数据无法像产业端一样有一套完整的设计体系,导致保存数据不规范、项目信息无法被及时推送到各个节点,无法及时反馈解决出现的问题。由于项目推进中,数据在设计和制造时会不断地修正和调试需要反复验证修改前期设计结果,导致产生了许多过程性文件。针对这些过程性文件,高校难以借助信息化手段对其进行有效管理,往往造成修改的结果参差不齐,增加工作量。
为了解决高校这一痛点,同时为了加快高校产学研融合、培养工业4.0 所需人才的需求,因此运用互联网信息化的手段设计一款能够针对高校的机械项目协作管理系统是非常有必要的。
调研历年来创新创业团队遇到的问题,归纳有以下几点。①由于课程中需要学生进行机械零件的三维、二维电子版图纸绘制,数据量比较大,通过线下传输或者聊天平台传输到老师的个人电脑上,无法做到高效的管理,且易出错,遗漏率较高。②项目团队在进行团队设计时,由于设计的零件及项目的各种文档都储存在各个成员自己的电脑中,版本太多导致更改的内容无法快速审核并使其他成员能够在项目中使用,造成团队之间成员协作不够紧密,效率低下。③项目团队负责人在管理项目时,只能通过线下或线上的会议了解到各个成员完成的进度,会议的记录及项目相关文件杂乱繁多,拖后项目进度。
基于以上调研出的痛点问题,经过整理,得出所设计的系统应包含以下几个功能模块。
⑴各种数据上传及下载功能,用户可以按照自身的权限对相应的数据进行下载、上传、更新等操作。
⑵项目管理功能,用户可以在项目下存放项目的各种数据,同时根据组织团队的变化进行人员管理。
⑶ 零件、图纸管理功能,用户可以上传或下载数据,系统会显示上传数据的基础信息,并提供基本信息维护的功能。
⑴系统可靠性 高校机械项目协作管理系统会存放大量的信息及数据,因此必须要有很高的系统可靠性。当系统个别功能发生故障时,运维人员可以通过代码的维护快速解决故障。因此在前期的代码编写时需要做到编码规范,可读性高,在关键功能编写时需要及时标记及注释。当系统发生重大故障时,运维人员必须保证系统在发生故障前的数据得以保存和恢复。
⑵系统易用性 用户在特使用本系统时,能够快速的学习、理解及使用,整体界面设计应该简洁、明了,采用常用网站相似的布局帮助用户快速理解系统功能,操作按钮利于用户便捷操作,减少学习成本。
⑶系统并发性随着系统的运作,可能存在某个时间段大量用户登录系统,使用系统的各个功能,如学校课程快结束时,教师让学生使用该系统上传课程的数据,此时大量学生会集中在一个时间段登录系统。因此系统需至少满足100 人同时进行访问,并且系统的响应时间不能超过3000ms,系统需在有效的时间内对用户做出响应。
本文采用前后端分离的技术进行开发,前端采用React 加Redux 框架,后端是SpringBoot 集成MyBatis-Plus 框架方案,以MySQL 搭配MongoDB 作为系统的数据库,设计了基于Web的高校机械项目协作管理系统。
React是目前最受欢迎的前端框架之一,它是一个开源的高效、灵活的JavaScript库,有丰富的组件可以用来快速创建Web 用户交互界面。React 可以通过OMDiff算法,计算出当前虚拟页面和新的虚拟页面之间的差异,从而最大程度地减少重绘,避免不必要的DOM操作,并实现高效渲染,提高效率,减少因为绘制界面的加载时间。但由于React 是一个视图层的框架,多个组件之间的传参十分麻烦,数据无法共享。故大型项目中常用Redux相配合使用。
SpringBoot 是Pivotal 团队提供的全新框架,可以简化Spring 应用的初始搭建和开发过程。SpringBoot能够加快Java 的开发,大大缩短了开发中配置、部署、监控的过程。由于SpringBoot 对于多表多条件分页查询的操作能力有限,因此整合MyBatis-Plus 为数据操作工具,MyBatis-Plus 是一个MyBatis 增强版工具,在MyBatis上扩充了其他功能,但没有改变其基本功能,简化了开发,提高了效率,它可以直接写SQL 语句,便于SQL 调用。使用Redis 做分布式缓存中间件来减轻数据库压力,提高系统性能。
数据库采用Mysql与MongoDB 平行使用。Mysql是关系型数据库。拥有较为成熟的体系,成熟度很高,且稳定性很强。在面对需要存储大量数据、文件时,效率较慢。而高校机械项目协作管理系统需要存储大量项目的文件、项目的数据,只采用MySQL 作为数据库,会使得系统整体效率低下,不利于使用。因此采用和MongoDB并行,MongoDB为非关系型数据库,主要负责文档、文件的存储,能够有较好的代码亲和性,搭配使用从而提高整体效率。
根据需求,系统采用模块化设计,如图1所示分为信息管理、项目管理、文档管理、零件数据管理四大模块。
图1 系统功能模块图
系统整体布局采用侧边导航栏模块和首部导航栏模块进行快速转页。用户能够根据需要点击相应侧边栏,快速进入各个管理模块页面。首部导航栏显示系统名称、账号及时间,用户点击系统名称可以快速回到“我的首页”管理模块,点击账号可以进入个人信息管理模块,在个人信息管理模块中用户可以更改个人的基本信息及登录密码。
页面的主体信息展示采用双分页结构,在左边页面显示所选具体模块中展示的信息,右边页面显示鼠标所点击的各种模块下详情信息,方便用户快速了解数据的基本信息及状态。同时在每个右边页面显示的详细内容下都有一个签出按钮,有相应权限的用户点击签出按钮,就可以修改这个详细内容的信息。在修改完成后,在签出按钮的位置会有个签入按钮,点击后就可以保存所修改的信息,方便用户维护。
我的首页模块是用户进入系统中第一个显示的页面,在这个页面中用户可以对文件夹进行创建、维护。用户可以在文件夹中放入各种数据,方便用户对各种数据进行快速分类和查阅。
项目管理模块中,用户可以通过创建项目按钮进行项目创建,在填完所需要的信息后生成的项目会出现在我的项目文件夹下,项目下会生成两个项目功能模块,program data 和program team,同时在点击项目的层级时会在右边页面显示项目的详细信息,如项目名称、项目描述、项目来源、项目开始及结束时间等等,具体如图2 所示。用户也可点击项目层级下方的两个功能模块跳转到对应的功能模块,进行项目下数据的管理和人员的维护。
图2 项目管理界面
经过多用户的测试及反馈,在零件数据管理模块中,由于用户会较高频率点击图纸管理和零件管理,因此在界面上将这两个模块分别展示到导航栏中,和文档管理同级。用户可以分别在上述三个页面进行零件、图纸、文档的创建、管理、下载等操作。
在系统中需要上传大量的数据,会遇到一些名字相同、相似的数据,为了确保每个数据在系统中的唯一性,因此为每个数据如项目、零件、图纸、文档定义唯一的编号。为了满足高校的需求和清晰、易识别的用户需要,定义了8位数的编号如图3所示。
图3 编码器位数图
Ⅰ组织类型:0 为测试序号,1-4 为学院序号,5-9为创新创业项目。
Ⅱ数据类型:0为测试序号,1-2为项目序号,3-4为零件序号,5-6 为图纸序号,7-8 为文档序号,9 为备用序号。
Ⅲ—Ⅳ年份序号:取自年份的后两位,如2021 年则为21。
Ⅴ-Ⅷ 自增序号:由编码器自动生产递增的序号,其中0000-0009为测试序号。
由以上规则将上述八位数通过后台的编码器拼接起来形成一个在系统中唯一的编号。例如在2021 年创建的创新创业项目下第一个零件的编码为:13210010。
由于系统整体的需求是项目的协作与管理,整体的数据是围绕着项目展开的,必须在项目下建立零件及文档,关联关系如图4所示。
图4 关联关系图
关联数据的实现是通过数据库建立的一张关系表,其中各个字段如表1 所示。在数据字典中共定义了program_own_folder、program_own_doc、program_own_part、program_own_drawing、part_own_drawing五种关联类型。其中零件必须关联项目,图纸则必须关联零件及项目,文档关联项目,这样所有的数据都可以通过项目索引。
表1 关联关系表
作为机械项目的协作管理系统必须要有零件的上传下载及管理的功能,同时为了确保对上传文件进行定义,共定义了三种情况,在文档管理页面可以上传txt、pdf、docx、doc、jpg、png、xlsx、xls、ppt、pptx、zip 格式文档,在零件管理页面可以上传sldprt、sldasm、igs格式的零件,在图纸管理页面可以上传dwg、dwt 格式的图纸。
本系统通过用户点击前端所设置的上传按钮,触发上传事件,后台通过MySQL 中定义文件的类型,将文件以数据流的形式存储到MongoDB。后台中SpringBoot 在上传时会定义上传权限,根据数据库的一个类型来判断用户是否有权限可以进行上传更新。同时下载也同理,根据用户的身份,开放下载的权限。
基于Web 的高校机械项目协作管理系统设计有利于提高高校在机械项目管理的效率,提高高校的信息化水平,使得学生能够更快融入信息化的先进制造企业。系统部署后,经过测试,整体运行稳定,达到了预期的功能。该系统经过一段时间运行后,一些师生也对系统提出了一些建议,下一步将会完善数据的周期管理,对接高校的MES 系统,助力于高校在智能制造领域的发展。