
1. 項目背景與核心需求2020年初突發的新冠疫情讓全球措手不及醫療物資的調配管理成為抗疫關鍵環節。當時我在某三甲醫院信息科實習親眼目睹了醫護人員用Excel表格手工統計口罩、防護服等物資的混亂場景——不同科室重復申領、庫存數據滯后、調撥記錄缺失等問題頻發。這促使我決定將畢業設計聚焦于物資管理系統開發用技術手段解決實際痛點。這個基于SpringBootVueMySQL的物資管理平臺核心解決三大問題物資全生命周期追蹤從采購入庫、庫存盤點到科室申領、調撥審批的全流程數字化動態庫存預警機制設置庫存閾值自動觸發補貨提醒避免關鍵物資短缺多維度數據可視化通過折線圖、熱力圖直觀展示物資消耗趨勢與區域分布提示在醫療場景下系統需要特別考慮高并發場景如突發疫情時大量科室同時申領物資和數據安全性醫療物資屬于敏感資產2. 技術棧選型解析2.1 后端技術組合選擇SpringBoot作為后端框架主要基于以下考量快速迭代疫情期間開發周期緊張SpringBoot的starter依賴和自動配置特性可節省大量環境搭建時間微服務友好為后續擴展核酸檢測管理、疫苗預約等模塊預留架構空間實戰案例參考了廣州某醫院開源項目中的物資管理模塊設計關鍵依賴配置示例pom.xmldependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-jpa/artifactId /dependency dependency groupIdcom.alibaba/groupId artifactIdfastjson/artifactId version1.2.76/version /dependency2.2 前端技術方案Vue.js的選擇經歷了兩個階段的思考初期對比與React相比Vue的單文件組件更符合醫療IT人員的技術棧認知實際驗證通過原型測試發現Element UI的表格組件在展示物資清單時性能優于Ant Design特別優化點采用vue-print-nb插件實現物資申領單的打印功能使用ECharts實現庫存預警的環形進度條特效2.3 數據庫設計要點MySQL表結構設計中的幾個關鍵決策物資分類表采用四層樹形結構大類→中類→小類→具體物資庫存記錄表包含current_quantity當前量、safety_stock安全庫存等字段操作日志表記錄每個物資變動事件的操作用戶、IP地址和時間戳CREATE TABLE material ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL COMMENT 物資名稱, spec varchar(100) DEFAULT NULL COMMENT 規格型號, unit varchar(10) NOT NULL COMMENT 計量單位, category_id int(11) NOT NULL COMMENT 分類ID, safety_stock int(11) DEFAULT 0 COMMENT 安全庫存量, PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;3. 核心功能實現細節3.1 智能庫存預警模塊采用雙閾值設計黃色預警庫存量低于安全庫存的150%紅色預警庫存量低于安全庫存的80%后端實現邏輯Scheduled(cron 0 0 8 * * ?) // 每天8點執行 public void checkStockWarning() { ListMaterial materials materialRepository.findAll(); materials.forEach(material - { int current stockService.getCurrentStock(material.getId()); if (current material.getSafetyStock() * 0.8) { // 觸發紅色預警 warningService.createWarning(material.getId(), RED); } else if (current material.getSafetyStock() * 1.5) { // 觸發黃色預警 warningService.createWarning(material.getId(), YELLOW); } }); }3.2 物資申領審批流設計了三層審批機制科室護士長初審判斷需求合理性物資管理部門復核核對庫存情況分管院長終審重大物資調配使用Activiti工作流引擎實現的狀態機stateDiagram-v2 [*] -- DRAFT DRAFT -- REJECTED: 駁回 DRAFT -- NURSE_APPROVED: 護士長通過 NURSE_APPROVED -- STOCK_REVIEWED: 庫管審核 STOCK_REVIEWED -- DIRECTOR_APPROVED: 院長審批 DIRECTOR_APPROVED -- COMPLETED: 發放完成3.3 數據可視化實踐前端采用ECharts實現的三種視圖熱力圖展示各科室物資消耗強度折線圖反映近30天庫存變化趨勢拓撲圖顯示物資調撥路徑關鍵配置項option { tooltip: { trigger: axis, formatter: function(params) { return 物資類型${params[0].name}br/ 當前庫存${params[0].value}${unit}br/ 安全閾值${safetyStock}; } }, series: [{ type: line, smooth: true, symbol: circle, symbolSize: 8, lineStyle: { width: 3 } }] }4. 部署與運維要點4.1 服務器環境配置推薦的最低硬件配置開發環境4核CPU/8GB內存/100GB SSD適合小型診所生產環境8核CPU/16GB內存/RAID10磁盤陣列三甲醫院級別Nginx關鍵配置優化location /api/ { proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; } location / { root /var/www/html/dist; try_files $uri $uri/ /index.html; }4.2 數據庫備份策略采用組合備份方案每日全量備份mysqldump導出SQL文件binlog增量備份每15分鐘同步到備份服務器緊急恢復預案準備5臺備用數據庫實例備份腳本示例#!/bin/bash DATE$(date %Y%m%d) mysqldump -uroot -p$PASSWORD material_db /backup/full_$DATE.sql find /backup -mtime 7 -name *.sql -exec rm -f {} \;4.3 常見故障排查問題1Vue頁面刷新后404原因History模式需要服務端配合解決在Nginx添加try_files配置問題2SpringBoot應用內存泄漏排查步驟jmap -heap 查看內存分布jstack 分析線程狀態檢查JPA的N1查詢問題問題3MySQL連接池耗盡優化方案spring: datasource: hikari: maximum-pool-size: 20 connection-timeout: 30000 idle-timeout: 600000 max-lifetime: 18000005. 畢業設計進階建議5.1 論文寫作要點技術章節建議結構系統架構設計含技術選型依據核心算法實現如預警模型計算性能測試方案JMeter壓測結果對比傳統管理方式的優勢量化分析5.2 答辯演示技巧三個必演示場景緊急物資申領展示完整審批流程庫存預警觸發模擬口罩庫存告急數據追溯查詢檢索某批防護服流向5.3 項目擴展方向后續可深化功能對接物聯網設備實現智能柜自動盤點增加區塊鏈模塊確保操作記錄不可篡改開發微信小程序端供醫護人員移動申領在項目開發過程中我深刻體會到醫療信息化系統的特殊要求——既要保證7×24小時穩定運行又要考慮醫護人員的使用習慣。比如在物資搜索功能中我們最終采用了拼音首字母模糊查詢的方案因為測試發現護士們更習慣輸入hsj來查找呼吸機而非輸入全稱。這些實戰經驗遠比教科書上的理論更有價值。