(ソースコード付き) Springboot 大学生の健康報告システムの設計と実装

目次

まとめ

1はじめに

1.1研究の背景と意義

1.2開発状況と開発動向

1.3システム開発技術の特徴

1.4論文構成と章の配置

2大学生の健康報告システムの系統的分析 

2.1実現可能性の分析

2.2システムフロー解析

2.2.1データ追加処理

2.3.2データ変更プロセス

2.3.3データ削除プロセス

2.3システム機能の分析

2.3.1機能分析

2.3.2非機能分析

2.4システムのユースケース分析

2.5この章の概要

3大学生向け健康報告制度の全体設計

3.1システムアーキテクチャ設計

3.2システム機能モジュールの設計

3.2.1全体的な機能モジュール設計

3.2.2ユーザーモジュールの設計

3.2.3コメント管理モジュールの設計

3.3データベース設計

3.3.1データベースの概念構造設計

3.3.2データベースの論理構造設計

3.4この章の概要

4大学生の健康報告システムの詳細設計と導入 

4.1ユーザー機能モジュール

4.1.1フロントページのインターフェース

4.1.2学生のログインインターフェース

4.1.3学生登録インターフェース21

4.1.4健康ニュースインターフェイス

4.1.5通知アナウンスインターフェイス

4.1.6薬剤情報詳細インターフェース

4.2管理者機能モジュール

4.2.1学生管理インターフェース

4.2.2薬剤情報管理インターフェース2 8

4.2.3通知アナウンス管理インターフェイス29

4.2.4その他の管理インターフェイス30

5システムテスト32

5.1テストの目的32

5.2機能テスト32

5.3パフォーマンステスト33

結論34

参考文献35

ありがとう  

まとめ

情報化社会においては、ターゲットを絞った情報入手経路が求められますが、基本的には経路の拡大が人々の目指す方向であり、視点の偏りにより、得られる情報の種類が異なることが多くなり、それもまた問題です。克服するのが最も難しいテクノロジーのトピックです。大学生の健康報告システムの問題およびその他の問題を目指して、大学生の健康報告システムの研究と分析が行われ、その後、問題を解決するために大学生の健康報告システムが開発および設計されます。

大学生健康報告システムの主な機能モジュールには、ユーザー管理、学生管理、医療従事者管理、健康報告、復学報告、殺害状況、薬剤情報、薬剤申請、通知アナウンス、コメントリストが含まれており、オブジェクトを採用しています。指向性開発モデル ソフトウェアの開発とハードウェアの構築は、実際の使用ニーズに十分に応えることができ、それに対応するソフトウェアの構築とプログラムコーディングの作業が改善されます バックグラウンドデータの主なストレージユニットとしてMySQLが使用され、スプリングブートフレームワークが使用されます、Java技術、Ajaxを採用し、高度な技術で業務システムのコーディングと開発を行い、システムのあらゆる機能を実現します。この報告書はまず研究の背景、機能、意義を分析し、研究作業の合理性の基礎を築きます。大学生の健康報告システムのさまざまなニーズと技術的問題を分析し、システムの必要性と技術的実現可能性を証明し、その後、設計システムで使用する必要がある技術的なソフトウェアと設計アイデアの基本的な紹介を行います。ついに大学生の健康を実感 提出システムと展開実行はそれを使用します。

キーワード:スプリングブートテクノロジー、MYSQL、大学生健康報告システム

概要

情報化社会においては、対象を絞った情報アクセスが求められていますが、アクセスの拡大は基本的に人々の努力の方向です。視点のズレにより、人は異なる種類の情報を取得することが多くなりますが、これはテクノロジーが克服するのが最も難しい課題でもあります。大学生の健康報告システムの問題点を目指して,本論文は大学生の健康報告システムを調査,分析し,次に問題を解決するための大学生の健康報告システムを開発,設計した。

大学生健康提出システムの主な機能モジュールには、ユーザー管理、学生管理、医療スタッフ管理、健康提出、新学期報告、殺害状況、薬物情報、薬物申請、通知発表、コメントリストが含まれます。ソフトウェア開発とハードウェア構築にはオブジェクト指向開発モードが採用されており、実際の使用のニーズを十分に満たし、対応するソフトウェア構築とプログラムコーディングを改善できます。MySQLはバックグラウンドデータの主記憶装置として使用され、スプリングブートフレームワーク、業務システムのコーディング・開発にはJava技術とAjax技術が用いられ、システムのすべての機能を実現します。この報告書はまず研究の背景、機能、意義を分析し、それが研究活動の合理性の基礎を築きます。この論文は、大学生の健康提出システムのさまざまなニーズと技術的問題を分析し、システムの必要性と技術的実現可能性を証明し、その後、システムを設計するために必要な技術的ソフトウェアと設計思想について基本的に紹介します。最後に、大学生の健康提出システムを実現し、展開します。

キーワード:  Springboot テクノロジー; MYSQL;大学生健康報告システム

1 はじめに

1.1研究の背景と意義

社会の発展と健康知識の普及に伴い、人々は生活の質に対する要求がますます高くなり、群衆と群衆の健康にますます注意を払うようになっているシステムは非常に必要です。現在、我が国の大学で一般的に使用されている「中国学生身体健康調査」(以下「中国体育協会」という)は、学校の体育状況を反映することはできますが、正確に提供することはできません。この欠陥を補うのが「体力検査基準」(以下「体力検査基準」という)です。大学生の体型、機能、資質を測定し、一定割合のスコアをインターネット上に公開するシステムで、その結果に応じて、さまざまなレベル、年齢の大学生に向けて科学的で合理的な運動プログラムを作成することができます。心身の健康を増進するという目的を達成するために、しかし、さまざまな理由により、この機能は効果的に実装されていません。このトピックでは、このような状況を対象として、ネットワーク環境をベースにした大学生の健康報告システムを設計および実装します。本稿では、需要分析から始まり、システムが解決すべき重要な課題であるデータ取得技術、データ送信技術、データベースアクセス技術について解説します。プログラムコードの一部とメインインターフェイスを示します。実現可能性。さらに、データ入力方法、データ処理アルゴリズム、ユーザー管理などの具体的な実装計画を含め、このソフトウェア システムを実際の業務に適用する方法についても説明し、最後に実験によりプログラムが実現可能で効果的であることを証明します。さらなる研究に使用されます。アプリを宣伝します。

1.2 開発状況と開発動向

社会の進歩、科学技術の発展、人々の生活水準の向上に伴い、人々は自分自身の健康に対する関心をますます高めています。大学は、科学的および文化的知識を普及し、資格のある専門家を育成する重要な場所の一つであり、社会主義現代化に向けて質の高い人材を供給するという重要な任務を担っています。しかし、さまざまな理由により、我が国の大学には一般的にいくつかの不健康な現象が存在します。いずれの状況も大学が育成する人材の質の向上には役立たないため、学校における体育の取り組みを強化することが特に重要である。新しい時代の大学における教育改革の要求に応えるためには、大学生の完全な健康報告制度をできるだけ早く確立しなければなりません。この記事は、「大学生の健康報告。このシステムを通じて、教師や生徒が自分の健康状態をタイムリーに把握し、セルフケアを行い、体力向上につなげることを期待しています。本稿ではまず、国内外の大学生の体力モニタリング方法と指標に関する研究の進捗状況を紹介する。そして、「国家中長期教育改革発展計画」で提唱されている「青少年の体力の強化と心身の健康の増進」という目標に沿って、国内の単科大学における健康教育の実態を踏まえ、 B/Sベースの一連のモデルを設計し、キャンパスネットワーク環境下での大学生の健康管理システムを構築します。最後に、システムの各機能モジュールについて詳しく説明します。

1.3 システム開発技術の特徴

(1) 大学生の健康報告システムの Web バックグラウンド管理のバックエンドでは、古い jsp+javabean+servlet テクノロジーは使用されなくなりましたが、現在の主流の springboot フレームワークが使用され、Java 構成コードが削減され、プログラミング コードが簡素化されています。このフレームワークも多くの企業に選ばれているフレームワークの一つです。

(2) 大学生健康報告システムの Web バックグラウンド管理のフロントエンドは JavaScript フレームワークを使用しており、ajax[8] と jquery[9] を使用してページのデザインを美しくすることができます。

(3)大学生健康報告システムのデータベースには実行効率の高いMysql5.7を採用しています。

1.4 論文構成と章の配置

論文は抽象的な謝辞と参考文献を除いて階層的に構成され、本文では Web サイトの要件も分析し、一般的な設計と実装された機能を説明し、最後にいくつかの試運転記録をリストします。次のように:

第1章;序章。第 1 章では、主に対象研究の背景、システム開発の現状と開発状況、開発動向、本稿の主な業務について紹介します。

第 2 章: システム要件の分析。第 2 章では、主にシステムの利用者と機能の側面から需要分析を行います。

第 3 章: システム設計。第 3 章では主にシステムフレーム、システム機能モジュール、データベースの機能設計を進めます。

第 4 章: システムの実現。第 4 章では主にシステムフレームワークの構築とシステムインターフェースの実現について紹介します。

第 5 章: システムのテスト。第 5 章では主にシステムのいくつかのインターフェイスをテストし、主要な機能をテストします。

第 6 章: 概要。

2 大学生の健康報告制度の分析

システム分析はプロジェクト開発の前提条件であり、システム分析を通じてシステムの主要ユーザーの基本的なニーズを十分に理解することができ、これがプロジェクト開発の理由でもあります。さらに、システム開発に関しては、通常、技術的実現可能性、経済的実現可能性などを含めた実現可能性分析が行われます。実現可能性分析は、プロジェクト全体の観点からの分析でもあります。次に、プロジェクトの特定のニーズを分析します。分析の手段は通常、ユーザーのユース ケース図を通じて実現されます。以下に詳しくご紹介します。

2.1実現可能性の分析

(1) 経済性:

プロジェクトで使用されるツールのほとんどは現在一般的なオープンソースで無料であるため、開発の初期段階ではプロジェクトに使用される資金が大幅に削減され、ソフトウェアの開発は開発期間中の資金の影響を受けません。プロジェクトの立ち上げ時期にあるため、経済的にはまだ実現可能です。ユーザーのニーズを満たすために、最小限のコストを使用するようにしてください。人件費や設備費に充てるための資金を節約します。ペーパーレス化と高効率化の道はますます進んでいきます。

したがって、経済的存続可能性については何の疑問もありません。

(2) 運用可能性:

このプロジェクトの設計では、このモードでの Web サイトのいくつかの開発事例を参照し、その操作インターフェイスを分析し、多くの事例を組み合わせて、基本的なコンピューターの知識を持つ人がこのプロジェクトを操作できるように、人間中心の操作と簡素化された操作を強調しています。

したがって操作性には問題ありません。

(3) 技術的な実現可能性:

技術的実現可能性とは、フレームワークの構築の実現可能性、より優れた技術が登場した場合のシステム技術のアップグレードの受け入れ可能性、および開発時間とコストの比率を指します。

既存の Springboot テクノロジーは、あらゆる電子商取引システムの構築に対応できます。この大学生の健康報告システムを開発するとき、私は springboot + MYSQL を使用してプログラム全体を実行しました。

結論から言えば、技術的な実現可能性には問題はない。

(4) 法的実現可能性:

開発者の観点から見ると、springboot と MYSQL はオープンソースでオンラインで無料であり、知的財産権に関して法的な紛争は発生しません。

ユーザー利用の観点からは、システム上で密輸品が販売されない限り、システム上で条約が締結され、違法な支払いは排除されます。

要約すると、法的な実現可能性に疑問はありません。

2.2 システムフロー解析

ビジネス プロセスは、特定の記号や線を使用して、ユーザーによるシステムの使用プロセスを示すものです。システム分析を実行する際、ビジネス プロセスは、開発者がビジネスをより深く理解し、エラーを発見し、システムを改善するのに役立ちます。

2.2.1 データ追加処理

ユーザーがシステムに正常にログインした、データを追加する操作が実現できます。追加するデータの数はシステムによって生成される特定の数であり、ユーザーが任意に入力することはできません。その数以外は、ユーザーが自由に入力できます。その他の追加情報をご自身で入力し、入力された情報がシステムによって検証され、正当であることが確認されます。合格はデータの追加が成功したことを示します。逆は、追加が成功しませんでした。図 2-1 は、データの追加が成功したことを示します。データを追加しています。

 

図 2-1 データ追加のフローチャート

2.2.2 データ変更プロセス

図 2-2に示すように、データ変更のプロセスは、上で説明したデータ追加のプロセスと同様です

 

図 2-2 データ変更のフローチャート

2.2.3 データ削除プロセス

システム内に不要なデータが存在する場合管理担当者はこれらのデータを削除することもできます (図2-3にデータ削除のフローチャートを示します)。

 

図 2-3 データ削除のフローチャート

2.3 システム機能の分析

2.3.1 機能分析

大学生の健康報告システムの役割に応じて、学生管理モジュール、医療従事者管理モジュール、管理者管理モジュールの 3 つの部分に分けました。

メディック/学生ユーザーモジュール:

(1) 登録とログインモジュール:医療従事者や学生が大学生健康報告システムにアクセスして、情報についてコメントしたり、医薬品情報を伝達したり、操作したりする場合、システムにログインする必要があります。学生健康報告システムのアカウント番号については、「登録」ボタンをクリックすると、新規ユーザー登録画面に入り、該当するアカウント番号(必須入力)+パスワード(必須入力)+を入力します。確認パスワード (必ず入力し、パスワードと一緒にする必要があります) + ニックネーム + 電子メール + 携帯電話番号 + ユーザー ID などを選択し、「登録」をクリックすると、システムはアカウントがユーザー データベースに存在するかどうかを確認します。以前に登録したユーザーが長期間使用しておらず、パスワードを忘れた場合は、「パスワードを忘れた場合」をクリックしてパスワードを取得することもできます。

( 2 ) 掲示板: ホームページのナビゲーション バーに「掲示板」のメニューが表示され、クリックして入力すると、バックグラウンドですべての管理者によって公開された掲示板情報が表示されます。

( 3 )健康レポート:ホームページのナビゲーション バーに「健康レポート」のメニューが表示されます健康レポートと同様に、次回この情報をより早く見つけたい場合は、ブックマークやコメントを付けることもできます。

( 4 )医薬品情報: ホームページのナビゲーションバーに「医薬品情報」のメニューが表示されます。クリックして入力すると、バックグラウンドで管理者によって公開されたすべての医薬品情報が表示されます。薬の名前薬の情報を表示、いいね+ブックマーク+コメントをすることができます

( 5 ) 私のお気に入り: 「私の」では、「私のお気に入り」情報を表示および管理でき、お気に入りを表示したり、お気に入り情報を削除したりすることもできます。

( 6 ) 学生: この機能は医療スタッフの背景の機能であり、学生の情報を閲覧できます。

( 7 )消毒状況: 学生はバックグラウンドの「消毒状況」インターフェースで消毒状況情報を送信でき医療スタッフは「消毒状況」インターフェース確認できます。

( 8 )薬剤申請: 学生はバックグラウンドの「薬剤申請」インターフェースで薬剤申請情報を送信でき、医療スタッフは「薬剤申請」インターフェースそれを表示してレビューできます。

管理者管理モジュール:

(1) ログイン: 管理者のアカウントはデータテーブルに直接設定および生成され、登録は必要ありません。

( 2 ) ユーザー管理: 「ユーザー管理」メニューをクリックすると、管理者 + 学生 +医療スタッフの3 つのサブメニューが表示され、これら 3 つのモジュールを追加、削除、変更、クエリできます。

( 3 ) 詳細管理: 「詳細」メニューをクリックすると、学生 + 医療スタッフ + 健康報告書 + 復学報告書 + 殺害状況 + 薬物情報 + 薬物申請 + 通知発表 + コメントリストが表示さます医薬品情報の追加、削除、変更、確認、学生や医療スタッフが提出した殺害状況の管理、医療スタッフや学生が提出した医薬品申請の審査と管理 学校への報告を実現することができます。

2.3.2 非機能分析

大学生健康報告システムのセキュリティ、信頼性、パフォーマンス、拡張性など、大学生健康報告システムの非機能要件。具体的には、次の表 3-1 で表すことができます。

3-1大学生健康報告システム非機能要件表

安全性

これは主に、大学生健康報告システムのデータベースのインストール、データベースの使用およびパスワードの設定が規定に準拠する必要があることを指します。

信頼性

信頼性とは、大学生健康報告システムがユーザーの指示通りに動作することを意味し、テストの結果、信頼性は90%以上です。

パフォーマンス

大学生向け健康報告システムが市場を占有するには性能が必須条件であり、性能が良い方が良い。

スケーラビリティ

たとえば、データベースは、システムの非機能要件を確実に満たすために、インターフェイスの使用などの複数の属性を予約します。

使いやすさ

利用者は大学生健康報告システムのページ表示内容に従うだけで操作できます。

保守性

大学生健康報告システムの開発は保守性が非常に重要ですが、テスト後は保守性に問題はありません

2.4システムのユースケース分析

2.3 の機能の分析を通じて、大学生の健康報告システムのユースケース図が得られます。

図 2-3 は、学生ユーザー ロールの例を示しています。

 

図 2-3 大学生の健康報告システムにおける学生ユーザーの役割のユースケース図

Web バックグラウンド管理の管理者は、大学生の健康報告システム全体のすべてのデータ情報を維持します。図 2-4 は、管理者の役割の例を示しています。

 

図 2-4 大学生の健康報告システムにおける医療スタッフのユーザー役割のユースケース図

Web バックグラウンド管理の管理者は、大学生の健康報告システム全体のすべてのデータ情報を維持します。図 2-5 は、管理者の役割の例を示しています。

 

図2-5 大学生の健康報告システムにおける管理者の役割のユースケース図

2.5 この章の概要

本章では、主に大学生健康報告システムの実現可能性分析、プロセス分析、機能要件分析、システムユースケース分析を通じて、大学生健康報告システム全体で実現すべき機能を決定します。同時に、大学生の健康報告システムのコード実装とテストの標準も提供します。

3 大学生の健康報告システムの全体設計

この章では、主に大学生向け健康報告システムの機能モジュール設計とデータベースシステム設計について説明します。

3.1システムアーキテクチャ設計

大学生の健康報告システムは、アーキテクチャの観点から、プレゼンテーション層 (UI)、ビジネス ロジック層 (BLL)、データ層 (DL) の 3 つの層に分かれています。

                                

 

図 3-1 大学生の健康報告システムのシステムアーキテクチャ設計図

プレゼンテーション層 (UI): UI 層とも呼ばれ、主に大学生の健康レポート システムの UI インタラクション機能を完成させます。優れた UI は、ユーザーのユーザー エクスペリエンスを向上させ、大学生の健康レポートを使用する際のユーザーの快適さを向上させることができます。システム。UI のインターフェイス設計は、良好な互換性を実現するために、大学生の健康報告システムのさまざまなバージョンやさまざまなサイズの解像度にも適応する必要があります。UI インタラクション機能の要件は合理的であり、ユーザーはインタラクティブ操作を実行するときに一貫したインタラクション結果を取得する必要があります。これには、プレゼンテーション層とビジネス ロジック層の間の適切な接続が必要です。

ビジネス ロジック層 (BLL): 主に大学生の健康報告システムのデータ処理機能を完成させます。ユーザーがプレゼンテーション層から送信したデータは処理されてビジネスロジック層を介してデータ層に渡され、システムがデータ層から読み出したデータは処理されてビジネスロジック層を介してプレゼンテーション層に渡されます。

データ層(DL):大学生健康報告システムのデータはサーバー側のmysqlデータベースに置かれるため、サービス層に属する部分はビジネスロジック層に直接統合できるため、データ層のデータベース。主に大学生の健康報告システムのデータ保存と管理機能を実現します。

3.2システム機能モジュールの設計

3.2.1 全体的な機能モジュール設計

最後の章では、システムの機能要件と非機能要件を主に分析し、要件に従って大学生の健康報告システムのユースケースを分析します。次に、大学生の健康報告システムのアーキテクチャ、主要な機能、データベースの設計を開始します。大学生の健康報告システムは、前章の要件分析に基づいて得られ、その全体的な設計モジュール図を図 3-2 に示します。

図 3-2 大学生健康報告システムの機能モジュール図

 

3.2.2ユーザーモジュールの設計

バックグラウンドマネージャーは、フロントデスクに登録されているユーザーの追加、削除、変更、確認を行うことができ、ユーザーモジュールの構成図は以下のとおりです。

 

図 3-3 ユーザーモジュールの構成図

3.2.3コメント管理モジュールの設計

大学生健康報告システムはコミュニケーションのためのオープンプラットフォームであり、ユーザーと管理者はプラットフォーム上の情報にコメントすることができ、ユーザー間の交流を促進します。しかし同時に、コメントの内容をより適切に規制し、管理者に不適切なコメントを削除する機能を提供するには、コメント管理モジュールを特別に設計する必要があり、具体的な構造図は次のとおりです。

 

図 3-4 コメントモジュールの構造図

3.3 データベース設計

データベースの設計は、一般に要件分析、概念モデル設計、データベーステーブル構築の 3 つの主要なプロセスから構成されます。要件分析については前章で説明しましたが、概念モデル設計は概念モデルと論理構造設計の 2 つの部分に分かれます。

3.3.1データベースの概念的な構造設計

以下は、大学生の健康報告システム全体の主要なデータベース テーブルの ER エンティティ関係図です。

図 3-6 大学生の健康報告システムの全体的な ER 関係図

 

大学生健康報告システムのデータベースの一般的な ER 関係図によると、大学生健康報告システムには多くの ER 図が必要であると結論付けることができます。ここではいくつかの主要なデータベース ER モデル図を示します。

 

図 3-7 医療従事者向け ER 関係図

 

図 3-8 消毒状況の ER 関係図

 

図 3-9 薬剤情報 ER 関係図

 

図 3-10 ヘルスレポートの ER 関係図

3.3.2 データベースの論理構造設計

前のセクションの中央大学学生健康報告システムの ER 関係図によると、多くのデータ テーブルを作成する必要があると結論付けることができます。ここでは主に、いくつかの主要なデータベース テーブル構造設計をリストします。

report_back_to_school表:

名前

タイプ

長さ

nullではない

主キー

ノート

report_back_to_school_id

整数

11

はい

はい

学校に戻るレポート ID

フルネーム

整数

11

いいえ

いいえ

名前

健康コード

可変長文字

255

いいえ

いいえ

健康コード

トラベルコード

可変長文字

255

いいえ

いいえ

トリップコード

お勧め

整数

11

はい

いいえ

インテリジェントな推奨事項

作成時間

日付時刻

0

はい

いいえ

作成時間

更新時間

タイムスタンプ

0

はい

いいえ

更新時間

Medical_staff テーブル:

名前

タイプ

長さ

nullではない

主キー

ノート

医療スタッフID

整数

11

はい

はい

メディックID

フルネーム

可変長文字

64

いいえ

いいえ

名前

ID

可変長文字

255

いいえ

いいえ

IDカード

性別

可変長文字

64

いいえ

いいえ

性別

検査状態

可変長文字

16

はい

いいえ

承認状況

お勧め

整数

11

はい

いいえ

インテリジェントな推奨事項

ユーザーID

整数

11

はい

いいえ

ユーザーID

作成時間

日付時刻

0

はい

いいえ

作成時間

更新時間

タイムスタンプ

0

はい

いいえ

更新時間

killing_situation表:

名前

タイプ

長さ

nullではない

主キー

ノート

殺害状況ID

整数

11

はい

はい

消毒 シチュエーション ID

殺害位置

可変長文字

64

いいえ

いいえ

消毒位置

殺害状況

可変長文字

64

いいえ

いいえ

消毒状況

担当者

整数

11

いいえ

いいえ

主要

kill_details

文章

0

いいえ

いいえ

詳細を消毒する

お勧め

整数

11

はい

いいえ

インテリジェントな推奨事項

作成時間

日付時刻

0

はい

いいえ

作成時間

更新時間

タイムスタンプ

0

はい

いいえ

更新時間

health_submission表:

名前

タイプ

長さ

nullではない

主キー

ノート

health_submission_id

整数

11

はい

はい

健康申告ID

フルネーム

整数

11

いいえ

いいえ

名前

ID

可変長文字

255

いいえ

いいえ

IDカード

出身地

可変長文字

64

いいえ

いいえ

出身地

学籍番号

可変長文字

64

いいえ

いいえ

学生証

学年

可変長文字

64

いいえ

いいえ

学年

寮番号

可変長文字

64

いいえ

いいえ

寮番号

温度

整数

11

いいえ

いいえ

体温

健康状態

可変長文字

64

いいえ

いいえ

健康状態

提出日

日にち

0

いいえ

いいえ

出願日

お勧め

整数

11

はい

いいえ

インテリジェントな推奨事項

作成時間

日付時刻

0

はい

いいえ

作成時間

更新時間

タイムスタンプ

0

はい

いいえ

更新時間

drug_information表:

名前

タイプ

長さ

nullではない

主キー

ノート

薬剤情報id

整数

11

はい

はい

医薬品情報ID

薬剤名

可変長文字

64

いいえ

いいえ

薬剤名

薬剤番号

可変長文字

64

いいえ

いいえ

薬剤番号

薬の絵

可変長文字

255

いいえ

いいえ

薬の絵

ストック

整数

11

いいえ

いいえ

库存

price

int

11

价格

drug_details

text

0

药品详情

hits

int

11

点击数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

drug_application表:

名称

类型

长度

不是null

主键

注释

drug_application_id

int

11

药品申请ID

drug_name

varchar

64

药品名称

drug_number

varchar

64

药品编号

number

int

11

数量

dormitory_no

varchar

64

宿舍号

contact_information

varchar

64

联系方式

applying_students

int

11

申请学生

reason_for_application

text

0

申请原因

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

comment表:

名称

类型

长度

不是null

主键

注释

comment_id

int

11

评论ID

user_id

int

11

评论人ID

reply_to_id

int

11

回复评论ID

content

longtext

0

内容

nickname

varchar

255

昵称

avatar

varchar

255

头像地址

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

source_table

varchar

255

来源表

source_field

varchar

255

来源字段

source_id

int

10

来源ID

3.4本章小结

整个大学生健康报送系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 大学生健康报送系统 详细设计与实现

大学生健康报送系统 的详细设计与实现主要是根据前面的大学生健康报送系统 的需求分析和大学生健康报送系统 的总体设计来设计页面并实现业务逻辑。主要从大学生健康报送系统 界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入大学生健康报送系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。

 

图4-1 前台首页界面图

4.1.2学生登录界面

大学生健康报送系统中的前台上注册后的学生是可以通过自己的账户名和密码进行登录的,当学生输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的学生信息是否一致,只有在一致后将会登录成功并自动跳转到大学生健康报送系统的首页中;否则将会提示相应错误信息,学生登录界面如下图4-2所示。

 

图4-2学生登录界面图

登录关键代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

4.1.3学生注册界面

不是大学生健康报送系统中正式用户的是可以在线进行注册的,如果你没有本大学生健康报送系统的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可学生注册成功。其用学生注册界面展示如下图4-3所示。

 

图4-2学生注册界面图

注册关键代码如下所示。

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        query.put("username",user.getUsername());

        List list = service.select(query, new HashMap<>()).getResultList();

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

4.1.4健康新闻界面

当访客点击大学生健康报送系统中导航栏上的“健康新闻”后将会进入到该“健康新闻”列表的界面,然后选择想要看的新闻,点击进入到新闻详细界面,在健康新闻详细界面可以发布内容+收藏+评论等操作,健康新闻界面如下图4-3所示。

 

图4-3健康新闻界面图

4.1.5通知公告界面

当点击后台的“公告”的时候,就会进入对应的界面查看公告信息,公告界面如下图4-4所示。

 

图4-4通知公告界面图

4.1.6药品信息详情界面

当访客点击了任意药品信息后将会进入药品信息的详情界面,可以了解到该药品的药品名称、价格、药品详情、库存等,同时可以对该药品信息进行收藏+点赞+评论,药品信息详情展示页面如图4-5所示。

 

图4-5药品信息详情界面图

4.3管理员功能模块

4.3.1 学生管理界面

大学生健康报送系统中的管理人员是可以对前台注册的学生用户进行管理的,也可以对管理员进行管控。界面如下图4-6所示。

 

图4-6学生管理界面图

学生管理关键代码如下所示。

public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

    }

4.3.2药品信息管理界面

此功能为管理员的功能,管理员点击“更多管理”菜单后能够对药品信息进行管控,包括了添加+编辑+删除+查询+申请,同时可以对前台用户对药品信息提交的申请进行管控;其界面展示如下图4-7所示。

 

图4-7药品信息管理界面图

4.3.3通知公告管理界面

在大学生健康报送系统中的管理人员是可以对前台用户发布的公告进行管控的,界面如下图4-8所示。

 

图4-8通知公告管理界面图

通知公告管理关键代码如下所示。

  @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

4.3.4更多管理界面

大学生健康报送系统中的管理人员在“更多管理”这一菜单下是可以对大学生健康报送系统内的医务员、健康报送、返校上报、消杀情况、药品申请、评论列表进行管控的,其管理界面如下图4-9所示。

 

图4-9更多管理界面图

更多管理关键代码如下所示。

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

5系统测试

5.1测试目的

对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。

5.2功能测试

下表是药品信息管理功能的测试用例,检测了药品信息管理中对药品信息信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表5-1 药品信息管理的测试用例

功能描述

用于药品信息管理

测试目的

检测药品信息管理时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加药品信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加药品信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改药品信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改药品信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除药品信息,选择药品信息删除

提示删除成功

与预期结果一致

点击搜索药品信息,输入存在的药品信息名

查找出药品信息

与预期结果一致

点击搜索药品信息,输入不存在的药品信息名

不显示药品信息

与预期结果一致

下表是返校上报管理功能的测试用例,检测了返校上报管理中对返校上报信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表5-2 返校上报管理的测试用例

功能描述

用于返校上报管理

测试目的

检测返校上报管理时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加返校上报,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加返校上报,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改返校上报,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改返校上报,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除返校上报,选择返校上报删除

提示删除成功

与预期结果一致

点击搜索返校上报,输入存在的返校上报名

查找出返校上报

与预期结果一致

点击搜索返校上报,输入不存在的返校上报名

不显示返校上报

与预期结果一致

下表是健康报送管理功能的测试用例,检测了健康报送管理中分类列表的操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表5-3 健康报送管理的测试用例

功能描述

用于健康报送管理

测试目的

检测健康报送管理时各种操作的情况

测试数据以及操作

预期结果

实际结果

未选择分类,点击提交

提示请选择分类

与预期结果一致

未选择列表,点击提交

提示请选择列表

与预期结果一致

5.3性能测试

使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。

压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。

结论

至此,大学生健康报送系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、springboot技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]曾劲涛,斯恩昊,龙满生,付青.基于Spring Boot框架的井冈蜜柚管理系统设计与实现[J].井冈山大学学报(自然科学版),2022,43(02):82-87+102.

[2]曹小华,张雯,王娜,杜洁,林钧昌,赵民.突发公共卫生事件下山东省大学生健康知识现状及影响因素分析[J].中国卫生事业管理,2022,39(03):231-234.

[3]Pfledderer Christopher D.,Bai Yang,Brusseau Timothy A.,Burns Ryan D.,King Jensen Jessica L.. Changes in college students’ health behaviors and substance use after a brief wellness intervention during COVID-19[J]. Preventive Medicine Reports,2022,26.

[4]孙培培,王世强,盛祥梅,肖刚,罗钟.大学生健康素养和体力活动水平的相关性分析研究[J].安徽体育科技,2022,43(01):78-82.

[5]李峰.疫情防控下大学生健康档案管理与服务探研[J].档案管理,2022(01):79-80.DOI:10.15950/j.cnki.1005-9458.2022.01.008.

[6]陈青杨,汪宏莉,卢恒,韦海华.中国大学生健康素养现状及其影响因素[J].科技资讯,2021,19(36):159-162+184.DOI:10.16661/j.cnki.1672-3791.2110-5042-2480.

[7]李磊.探究大学生健康教育存在的问题与对策[J].中国继续医学教育,2021,13(34):124-127.

[8]姜峰,张佳彤,乔金鸽,臧卫东.新时期在校大学生健康素养现状调查及影响因素分析——以河南某综合性大学为例[J].保健医学研究与实践,2021,18(06):1-7.

[9]魏来,黄艳. 9周“1+1”运动模式对江苏科技大学肥胖女大学生健康体适能效果的研究[C]//.第三届“全民健身 科学运动”学术交流大会论文集.,2021:191.DOI:10.26914/c.cnkihy.2021.048706.

[10]尚鹏. 一种基于Spring boot框架的数据处理方法及装置[P]. 北京市:CN113641700A,2021-11-12.

[11]和大同, 红十字会 “2018怒江·大学生健康故乡行”慰问志愿服务活动. 杨国志 主编,兰坪年鉴,云南民族出版社,2019,238,年鉴.DOI:10.40612/y.cnki.ylpnn.2021.001104.

[12]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

[13]黄瑞泉.基于Spring Boot框架的地图监管系统[J].计算机系统应用,2021,30(08):89-95.DOI:10.15888/j.cnki.csa.008020.

[14]佟佳春. 立德树人视域下大学生健康人格培育研究[D].辽宁工业大学,2021.

[15]杨超智. 基于Spring boot框架的预警监测平台[C]//.中国移动5G天线产业技术研讨会论文集.,2020:90-92.DOI:10.26914/c.cnkihy.2020.065469.

[16]Lei Yu,Cheng Li,Lei Wei,Hu WenYa. Marine biological monitoring and managing system based on Java technology[J]. MIPPR 2019: REMOTE SENSING IMAGE PROCESSING, GEOGRAPHIC INFORMATION SYSTEMS, AND OTHER APPLICATIONS,2020,11432.

[17]Xuchun Chen. Design and Implementation of University Art Education Management System Based on JAVA Technology[J]. International Journal of Emerging Technologies in Learning (iJET),2018,13(10).

致  谢

逝者如斯夫,不舍昼夜。转眼间,大用户用户活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?

感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。

少年,追风赶月莫停留,平荒尽处是春山。

请关注点赞+私信博主,免费领取项目源码

おすすめ

転載: blog.csdn.net/ID3461074420/article/details/131223009