葛和勇
(上海理工大學機械工程學院,上海 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 系統,助力于高校在智能制造領域的發展。