ディレクトリ
まとめ
現在、情報化の時代を迎え、多くの産業が時代の変化に適応し、コンピュータ技術を活用してデジタル化・情報化が進んでいます。従来の緊急重要情報の管理・制御は、これまで関連業界が手作業でデータを登録し保存しており、人力ベースの管理モデルが遅れてきました。主流のプログラム開発テクノロジーと組み合わせて、SpringBoot+Vue に基づく従来の緊急物資管理システムを設計しました。これにより、人的資源と資金の損失が大幅に削減され、関係者が情報をタイムリーに更新および保存することが容易になります。この従来の緊急物資管理システムはB/Sモデルに基づいており、アイデアプラットフォームを使用して関連するJavaコードを記述することでシステムの機能モジュールの設計が実現され、MySQLデータベースを使用して関連するデータテーブルが設計されます。システムの実現 データリソースの管理と制御のために、SSM フレームワークを使用して関連プロジェクトのメインストリームアーキテクチャを作成し、システムの基本フレームワークを実現し、最終的に開発されたシステムを Tomcat ブラウザを使用してインターネットに公開します。関連するユーザーはシステムを実行して使用できます。この記事では、システム実装の実現可能性分析、設計された機能とデータベースの計画、およびメイン機能モジュールのテストの設計について詳しく紹介し、この記事でのシステムのメイン機能モジュールの設計インターフェイスと操作インターフェイスも示します。 、利用者によるシステムの運用・利用、およびその後の関係者によるシステムの更新・保守を容易にするために必要な説明を行いました。このシステムの実現により、関連業界の作業効率が大幅に向上し、ユーザーエクスペリエンスが向上するため、このシステムを実際に適用することは大きな利用価値があります。
キーワード:従来の防災用品管理、Java言語、B/Sアーキテクチャ、MySQLデータベース
第1章 はじめに
1.1 研究の背景
近年、第三次産業が急速に発展しており、コンピューターサービス、観光、娯楽、スポーツなどのサービス産業が社会全体の経済建設を大きく推進していることは疑いの余地がありません。現在、国は社会経済発展を促進するために、第三次サービス産業の発展と改善を支援および奨励する一連の政策も発行しています[1]。したがって、全体として、国はサードパーティサービス産業の発展をより奨励しています。コンピュータ分野の発展過程全体を通じて、コンピュータの誕生から数百年が経過し、コンピュータ応用技術は徐々に成熟し、関連する設計者は絶えずそれを改善し、完成させてきました。これまで、コンピュータは比較的人気のある産業として発展してきました。大学ではコンピュータや人工知能などの専攻が非常に人気があり、多くの学生が専攻を選択する際にはコンピュータ専攻を優先します。社会においてもコンピュータ産業は比較的人気のある産業となっており、ブラウザでアクセスするウェブサイトから、携帯電話での各種アプリケーション、大規模なソフトウェアサービス機器に至るまで、基本的にあらゆるものはコンピュータ技術、サポート、ハードウェアサポートと切り離せないものとなっています。
現在、インターネットが世界中に普及しており、人工知能とビッグデータの役割がますます重要になっており、例えば、感染症流行時にはビッグデータ技術を利用して、接触履歴のない職員と接触履歴のない職員を判断することが行われています。これにより、非常に短期間に最速で流行を予防し制御することができます。このバックグラウンド環境を原動力として、私は Java 言語、MySQL データベース、SSM フレームワーク、およびその他の関連コンピューター テクノロジを学習することで、その後のシステム開発を容易にするため、強固な技術的基盤を築きました。次に、システムの分析を通じて、システムの全体的な機能要件と実現の可能性が決定され、関連する機能モジュールが詳細に設計され、最終的に SpringBoot+Vue に基づく従来の緊急物資管理システムが完成します。開発に成功しました。このシステムは従来の管理モードを改善し、元の手動記録と管理情報を改善してコンピュータストレージと管理情報記録を使用します。これにより、スタッフによる関連データの処理が大幅に容易になり、関連業界の人件費と管理オーバーヘッドが大幅に節約されます。ユーザーのニーズに短時間で対応できるこの便利な操作は、ユーザーの時間とエネルギーを大幅に節約し、多くの手間も省き、ユーザーの利便性を大幅に高めます。
1.2 研究の意義
従来の情報管理形態は主に人的資源による管理・制御であり、スタッフがユーザー情報を登録し、過去の情報記録と比較することにより、ユーザーに関連する利用要件を提供するかどうか、およびユーザーに提供する方法を決定します。ユーザーの使用要件を満たします。このような管理形態は時代の変化に適応できなくなり、衰退の一途をたどっており、徐々に情報管理形態に取って代わられつつある。いわゆる情報管理モードは現在主流の管理モードであり、コンピュータ技術と組み合わせることで業界の作業モードとサービスプロセス全体を改善し、完成させます。主にコンピュータやその他の機器を使用して作業サービスのプロセスをデジタル化し、それを保存および記録し、業界全体のサービスレベルを向上させます。コンピュータ技術と組み合わせて、SpringBoot + Vueに基づいた従来の緊急物資管理システムを開発しました。これはデータ情報を電子的に保存し、スタッフが関連情報を記録および管理するのに便利であり、関連業界の業務と運営の改善に役立ちます。ユーザーの関連ニーズをより適切に満たし、最終的にユーザーエクスペリエンスを向上させるという目的を達成するために、効率とスタッフ管理のスピードが向上し、このシステムの設計と実装は非常に重要で価値があることがわかります。
1.3 国内外の研究状況
1.3.1 海外での研究状況
米国は、コンピュータ テクノロジを開発した最初の国の 1 つであり、前世紀には米国のコンピュータ テクノロジが急速に発展し、軍事、病院、学校、社会サービスなどの場所で使用されていました。日本、ドイツ、その他の国々もこれに続き、医療、社会サービス、その他の分野とコンピュータ技術の組み合わせに焦点を当てて、コンピュータ技術の開発と改善を続けてきました[2]。その後、社会の発展と進歩に伴い、コンピュータ技術は徐々に成熟していきます。多くの先進国では、さまざまな産業へのコンピュータ技術の応用を模索していますが、別の観点から見ると、関連産業の情報管理プロセスも常に推進しており、関連産業の経営のネットワーク化と情報化が進んでいます。多くの専門家は、画像処理ソフトウェア、人工知能技術、その他の関連ツールを使用して、主に操作の簡素化、機能モジュールの追加、システムインターフェイスの美化、データセキュリティの確保などの観点から、従来の緊急物資管理システムを深く分析できると述べています。システムを階層的に改善・最適化し、理想的な条件下で可能な限りリアルタイムの情報共有を実現します。
1.3.2 国内の研究状況
国内のコンピュータ技術の発展は諸外国、特に米国、英国、ドイツなどの先進国に比べて遅れていますが。しかし、我が国のコンピュータ技術の発展の勢いは非常に早く、近年、徐々に成熟した完璧な段階に向かって進んでいます。今や、オンライン ショッピングを選択することは人々の日常生活の中で通常の傾向となりましたが、これはもちろん、Tmall、Alipay、WeChat などのアプリケーション ソフトウェアの使用とも切り離せません [3]。多くの企業がクラウドコンピューティングや人工知能などの高度なコンピュータ技術を組み合わせ、業界関連の情報管理システムを独自に開発するなど、コンピュータ技術は徐々に成熟し、ユーザーデザインの機能も徐々に完成してきました。コンピューター技術と組み合わせて、主流の B/S 開発構造モデルを採用し、SpringBoot+Vue に基づく従来の緊急物資管理システムを開発します。その結果、システムは、スタッフがいつでもどこでもブラウザを使用して業務にアクセスできるようにサポートし、いつでもどこでも関連する従来の緊急物資情報の管理をサポートし、ユーザーに特定の機能サービスをタイムリーに提供することができます。さらに、設計されたシステムは基本的にユーザーの客観的なニーズを満たすことができ、関連業界の人的、財政的、物的リソースを完全に調整し、関連スタッフの管理品質とレベルを継続的に向上させるのに役立ちます[4]。
1.4 研究内容と研究方法
1.4.1 研究内容
本稿では、まず従来の緊急物資管理システムの研究背景と意義を紹介し、次にシステム全体の機能設計を紹介し、次にシステム全体の機能をさまざまな機能サブモジュールに分割し、それぞれの小さな機能を分析します。機能サブモジュールが設計され、最後に設計された機能モジュールとテスト結果が紹介されます。システムは主に管理者役割と利用者役割に分かれており、具体的な機能設計としては、登録・ログイン管理、利用者情報管理、資材情報管理、資材輸送管理などのモジュールが含まれます。登録・ログイン管理機能とは、新規利用者がシステムを利用する前に詳細情報を登録し、正しいアカウント番号とパスワードを入力してシステムにログインすることで、一連の操作が可能となる機能です。自分自身の関連するニーズを満たすために実行されます。ユーザー情報管理機能は、関連するユーザー情報資料を管理することであり、管理担当者は実際の状況のニーズに応じてユーザー情報記録を選択的に更新できます。材料情報管理は、関連する材料情報記録を管理し、詳細な材料情報を保存し、ユーザーのサービス要求にタイムリーに対応することです。資材輸送管理は、関連する資材輸送情報の記録を管理し、関係者が資材輸送情報をタイムリーに確認できるようにすることであり、異常な資材輸送情報が発生した場合は、問題を短期間で解決するために適時に処理できます。時間を短縮し、ユーザーエクスペリエンスの利用を向上させます。
1.4.2 研究方法
システムはB/Sアーキテクチャで実装されており、アイデアツールを使用して関連するJavaコードを記述し、システム機能モジュールを設計し、MySQLデータベースを通じてデータリソースを管理および制御することで、システムの必要な管理および制御に役立ちます。関連データ。システム設計の最も重要な部分は、SSM フレームワークを通じてシステムの機能アーキテクチャを設計し、関連するユーザーが操作および使用できるように Tomcat サーバーを通じてブラウザにシステムを公開することです。このシステムの設計と導入により、関連業界の情報構築が促進され、関係者の作業プロセスが簡素化され、作業効率が向上し、仕事の幸福度が向上しました。
1.5 論文の組織構造
SpringBoot+Vueをベースとした従来の緊急物資管理システムの設計・実装の組織構造は大きく7章に分かれており、具体的な内容は以下のとおりです。
第 1 章は序章であり、主に制度の背景、現状、手法について紹介します。研究の背景と意義に応じて、設計するシステムの研究背景と理論的根拠を紹介し、国内外の研究状況を通じて現在の関連システムソフトウェア製品の研究実態を把握し、最後に全体をまとめる。研究内容と方法によるシステムの開発プロセスと実装ステップは、システムに信頼できる理論的根拠と技術的サポートを提供します。
第 2 章は関連技術の紹介であり、主に開発で使用した関連技術を紹介します。このシステムで使用される主な開発テクノロジには、Java 言語、SSM フレームワーク、MySQL データベースなどが含まれ、使用される開発モードは B/S アーキテクチャです。その中でも、Java 言語はクロスプラットフォームで移植性が高く、さまざまなブラウザでのシステムの実行をサポートできます。MySQL データベースはメモリ占有量が少なく、高速に実行されます。中小規模のシステムのデータ管理には非常に良い選択肢です。 。
第 3 章はシステム分析であり、システム分析段階では主にシステムの要件と実現可能性を分析し、システムの機能設計を計画し、システム実現の可能性を判断します。需要分析に応じて、システムに対するユーザーの基本的な機能要件を確認し、経済的、運用的、法的な実現可能性分析を通じて、システム開発の実際的な意義と利用価値、システムパフォーマンスの安定性、機能操作の利便性を分析します。市場での成功の可能性。
第 4 章はシステム設計であり、主にシステム全体の機能設計とデータベース設計について紹介します。システムの全体的な機能設計を導入することにより、システムが実際に設計する必要がある機能モジュールが計画および設計され、関連する技術担当者がシステムの機能モジュールを設計して作業の準備をするのに便利です。次に、データベース設計を導入することにより、データベースによって保存および制御できるデータ テーブルの設計が容易になり、関連する設計者が必要なデータ リソースを管理し、データ情報のセキュリティを維持および更新するのに役立ちます。
第 5 章はシステム実現であり、システム実現段階では主に資材情報管理や資材輸送管理などの機能モジュールについて説明します。先に紹介したシステム分析、機能およびデータベース設計、およびその他の関連コンテンツを通じて、システム機能モジュールが詳細に実現されます。このプロセスは、システムの具体的な実装段階であり、システムの全体設計の観点から、システムの実現に必要な分析を行うと、この段階が非常に重要であり、ユーザーのシステム使用体験に直接関係していることがわかります。
第 6 章はシステムテストであり、主にテストに関する内容について説明します。このシステムは、主に機能テスト手法を用いて、システムの主要な機能を検査およびテストし、設計されたシステム機能が正常に使用できるか、ユーザーが正常に操作および使用できるか、およびシステムの動作中に異常がないかをテストします。異常な動作、異常なデータ、異常な結果などのシステムのテスト結果に応じて、対応するテストの概要が示され、システムが期待される要件と設計目的を満たしているかどうかを示す関連結論が導き出されます。
第2章開発技術入門
2.1 B/S アーキテクチャ
ソフトウェア開発の現状を見ると、現在使用されている主なシステム開発構造モデルは、C/S モデルと B/S モデルに大別できます [5]。C/S モードに基づいて開発されたシステムを使用する場合、ユーザーはソフトウェア システムの関連機能モジュールを操作して使用するために、対応するクライアント、つまりアプリケーション プログラムをダウンロードする必要があります。ユーザーの観点から見ると、クライアントのダウンロードとインストールという煩雑な手順により、ダウンロード速度の安定性とインストール手順の正確性を確保する必要があり、ユーザーがシステムの使用を断念する可能性が高くなります。 C/S モードには大きな制限があることがわかります。
C/S モードは小規模なローカルエリアネットワークに適しており、通信効率が良いため、システム規模が小さい時代には主に C/S モードを使用してシステム開発が行われていました。時代の発展や社会の進歩に伴い、C/Sモデルでは開発者の設計ニーズやユーザーのニーズに応えられなくなってきています。現在、C/S モードでは実際のシステムプログラミング要件を満たすことができなくなったため、C/S モードをベースにして B/S モードが提案され、近年徐々に開発構造モードの主流になりました。B/S モードで開発されたシステムは、ユーザーが対応するアプリケーション プログラムをダウンロードしてインストールする必要がなくなり、ブラウザを直接使用して正しい Web サイトのアドレスを入力し、Web サイトにアクセスするという形でシステムの関連機能動作を実現します。この機能により、C/S モードでの開発と設計が大幅に改善されましたが、もちろん、このシステムを使用する前提は、アカウント番号とパスワードが正当であることを確認することです。
2.2 Java言語
Java 言語は、データと操作メソッドをオブジェクト全体としてカプセル化するプログラミング言語であり、優れた技術アーキテクチャを備えています。現在市場では、アプリケーション システムの大部分は主に Java 言語を使用して開発されています [6]。Java言語は、分かりやすく、操作しやすく、堅牢性が高いという利点があり、開発者は短期間で理解・習得し、具体的なシステム開発プロセスに応用することができます。システム メモリ管理の問題に対して、Java 言語はそのような問題を解決するガベージ コレクション メカニズムを内部的に提供します。Java言語は、開発やプログラミングの難しさを大幅に簡素化するために、C言語のポインタをリファレンスに改良したものでもあるため、多くの開発者に愛されています。また、Java 言語はクロスプラットフォームであるため、移植性が非常に高く、開発者が関連コードを更新および保守するのに有益であり、Java 言語で開発されたシステムは、さまざまなブラウザで開くことができます。Javaで開発したシステムは互換性が高く、コードの汎用性が高いため、その後のシステムの改良や保守を容易にするために、最終的にはJava言語を使用してシステムを開発することにしました。
2.3 SSM フレームワーク
SSM フレームワークは、主に Spring、SpringMVC、MyBatis の 3 つのフレームワークによって統合されており、大規模から中規模のアプリケーションの設計と構築に適用できる人気のある Java 開発フレームワークです。Spring は、数十年前に登場した軽量のオープンソース Java 開発フレームワークで、これを使用すると、関連するシステム オブジェクトの作成とオブジェクトの依存関係の問題を解決でき、また、高度に結合されたシステムを低結合の複数に分解することもできます。システム モジュールの分業により、機能コードを理解し、変更できるため、設計者の開発プレッシャーが大幅に軽減されます [7]。SpringMVC フレームワークは Spring フレームワークをベースに提案されており、MVC の 3 層アーキテクチャを核とし、Spring の関連技術を統合しています。主に Web 側の技術アーキテクチャに焦点を当てており、ユーザーからの特定の応答処理を要求します。MyBatis フレームワークは、オープンソースの Java 永続層フレームワークで、主にパラメータの手動設定と結果レコードの取得方法を改善し、ストアド プロシージャの処理とデータベース上の高度なマッピングをサポートすることで、データベースの操作をよりカスタマイズします。透過的であるため、データベース アクセスの複雑さが軽減され、開発の効率が向上します。
2.4 vue フレームワーク
vue フレームワークは、関連するユーザー インターフェイスを構築するための進歩的なフレームワークです。そのため、特定のシステム ページのラベルを制御したり、ページ全体のさまざまなラベルを制御したり、フロントエンド プロジェクト全体のさまざまなラベルを制御したりできます[8 ] 。Vue フレームワークを使用して記述されたコードは、関連するコントロールの変数値を手動で更新する必要がなくなり、バインドされた変数の値が変更されると、関連するコンポーネントも自動的に更新されます。vue フレームワークは主にボトムアップ方式でシステムのユーザー インターフェイスを設計および作成しますが、vue フレームワークはレイヤーのコンテンツのみに焦点を当てているため、複雑で煩雑な単一ページを提供するだけでなく、対応するドライバーを使用することもできます。サードパーティのライブラリや関連プロジェクトも統合します。vue フレームワークの文法定義はシンプルで、学習と習得が比較的簡単であるため、関連する開発技術者のほとんどは、関連するフロントエンド ページ表示コードを記述し、対応するシステム Web サイト ページを作成するために vue フレームワークを使用することを選択します。このようなページデザインは、ユーザーが関連データ情報を照会し、システムの操作と使用法を理解するのに便利です。
2.5 MySQLデータベース
MySQL データベースは、頻繁に使用されるリレーショナル データベースです。オープンソースで無料、メモリが少ない、インストールが簡単、操作が便利、柔軟に使用できるなどの利点があるため、中小規模のシステム開発でよく使用されます[9]。MySQL データベースはマルチスレッドをサポートし、同時に複数のユーザーのニーズに応えることができます。MySQL データベースにはオプティマイザーも付属しており、設計者が使用中に関連するデータ情報をすばやくクエリするのに便利です。また、現在では SQLServer データベースもよく使われており、データのセキュリティやシステムの安定性、さらにはシステム開発の面でも比較的優れています。MySQL データベースには、関連するプログラミング言語で使用するための多くのアプリケーション プログラミング インターフェイスもあります。記述されたコードは非常に多用途で保守しやすく、MySQL データベースは数千のデータ レコードを迅速に処理でき、ログ ファイルを通じて迅速に復元できます。SQLServer データベースと比較して、MySQL データベースは、コスト、メモリ サイズ、コードの共通性、データのメンテナンス、操作の容易さの点で大きな利点があり、データベース設計者の目から見て、MySQL データベースの実際のアプリケーションは大きな価値があります。
第3章 システム分析
3.1 システム要件の分析
要求分析段階は、システムの機能モジュールを設計するための一般的な方向性であり、システムの開発プロセス全体と設計の進行は、基本的に要求分析に基づいていると言えます[10]。要求分析段階では、システムの基本的な機能設計を決定でき、最終的なシステムの受け入れ段階では、要求分析レポートを比較することで、システムの機能設計が合理的であるかどうか、要求を満たすことができるかどうかを検証できます。ユーザーの基本的なニーズを把握し、最終的にシステムが成功しているかどうかを判断して要約します。本稿では主にアンケート調査を通じて従来の防災資材管理システムに求められる関連機能を分析した[11]。調査結果によると、システム利用者には主に利用を目的とするユーザー役割タイプと、管理を主目的とする管理者役割タイプの2種類が存在することが分かりました。このシステムの主な機能要件には、資材情報管理や資材輸送管理などのモジュールが含まれます。その中でも、パスワード情報、ユーザー情報、資材情報、資材輸送情報などは非常に重要なデータ記録であり、データのセキュリティを確保し、ユーザーの重要な情報を効果的に保護するために、システム設計の過程で一定の暗号化処理が必要です。
3.2 システムの実現可能性分析
3.2.1 経済的実現可能性
システムの経済的実現可能性分析は、システムの経済的実現可能性調査とも言え、社会の経済発展から出発し、システム全体の実現可能性を検討することで、費用対効果の状況を総合的かつ具体的に分析するものです。そして、分析された実現可能性レポートに従って、関連する投資家に最も科学的な意思決定理論と最適な投資計画を提供します。本システムの開発により、管理者は従来の緊急物資管理システムのWebサイトアドレスをブラウザ上に直接公開し、利用者は必要に応じてシステムの関連機能を選択的に操作できるようになり、関連業界の情報管理が促進されました。この方法により、時間と空間の制約がなくなり、関連業界は従来の防災用品に関する情報を短期間で最大限に管理できるようになります。さらに、このシステムで使用される開発テクノロジーと関連ツールのほとんどはオープンソースで無料であるため、開発コストを大幅に節約できます。上記の内容の分析に基づいて、このシステムの実現は経済レベルで実現可能であることがわかります。
3.2.2 技術的な実現可能性
このシステムは Java 言語をベースに開発されており、Java 言語は習得が容易で安定性が高く、コード利用率が高いため、多くの開発技術者が Java 言語をシステム設計に使用することを好みます。現在、多くのプログラムシステムの研究開発は、コーディングにJava言語を使用して設計されています。さらに、Java 言語にはクロスプラットフォームという利点もあります。つまり、設計されたシステムはプラットフォームとは無関係です。つまり、Java 言語で開発されたシステムは、異なるブラウザ上での実行と使用をサポートできます。ほぼ同じ条件下では、他のデータベースと比較して、このシステムはシンプルでわかりやすい構文を持つ MySQL データベースを使用しており、データベース設計者はできるだけ早くマスターして使用することができます。また、MySQL データベースは、システム メモリが少なく、機能が充実し、応答速度が速く、使用料が無料であるという特徴を持ち、非常に短時間で数千の情報レコードを処理できるため、システムの実行と安定性を保証できます。効率的に仕事をする。上記の内容の分析に基づいて、システムの実現は技術レベルで実現可能であることがわかります。
3.2.3 運用の実現可能性
今日、人々の日常生活はインターネットの利用と切り離せないものとなっており、関連産業の情報化構築は社会の発展をある程度促進しています。携帯電話のアプリケーションプログラムを利用することで、例えば電子商取引システムを利用することで、オンラインショッピングやオンライン決済などの機能を実現したり、国の公式ウェブサイトを利用することで、最新ニュースの確認や申告などを行うことができます。個人的な業務、オンライン予約登録、健康診断レポートのオンライン閲覧、その他の業務。これらのアプリケーションの背景には、このシステムは B/S 開発構造モデルを使用しています. Web サイトのインターフェイスは主に人間化を考慮して設計されており、美しく、フレンドリーでインタラクティブであるという利点があります. ユーザーは特定のプログラミング技術を習得する必要はありません。また、独自のニーズを満たすために、システム上で単純な機能操作を直接実行できます。このシステムは、ユーザーがシステムの関連機能をよりよく理解し、正しい動作モードでシステムをすぐに使用するのに便利ないくつかのプロンプト情報も設計しています。上記の内容の分析に基づいて、システムの実現は運用レベルで実現可能であることがわかります。
第4章システム設計
4.1 システム全体の機能設計
システム全体機能設計フェーズは、システム分析フェーズの関連内容を組み合わせて、システム全体の機能設計を計画するプロセスです。システムの全体的な機能設計は、システムの詳細な機能設計の一般的な方向性です。つまり、システムのさまざまなサブ機能モジュールの設計は、全体的な機能設計を目標として実行されます。システムの要件分析を通じて、システムが特に必要とする関連する主要な機能モジュールについての一般的な理解を得ることができます。このシステムの主な機能要件には、資材情報管理や資材輸送管理などのモジュールが含まれます。図 4-1 に管理者機能設計図、図 4-2 にユーザ機能設計図を示します。
図4-1 管理者機能設計図
図 4-2 ユーザー機能設計図
4.2 データベース設計
4.2.1 概念設計
このシステムは、システム関連のデータ情報を管理および維持するために軽量の MySQL データベースを使用します [12]。データベースの設計フェーズは、一般に概念設計と論理設計の 2 つのフェーズに分けることができます。概念設計段階は、システムのデータベース設計の重要な基礎であり、現実世界のユーザーの関連ニーズを仮想世界の概念モデルに抽象化し、その後の論理設計の準備をします。ER図を設計することで、システム内のエンティティとエンティティ間のつながりを詳細に表現します。各エンティティ情報の実体属性図を図 4-3、図 4-4、図 4-5、図 4-6、図 4-7、図 4-8、図 4-9、図 4-に示します。 10. システムの全体的な ER 図を図 4-11 に示します。
図4-3 管理者情報エンティティの属性図
図 4-4 ユーザ情報エンティティの属性図
図4-5 辞書情報実体の属性図
図 4-6 部門情報エンティティの属性マップ
図 4-7 材料情報エンティティの属性図
図 4-8 材料適用情報エンティティの属性図
図 4-9 資材輸送情報エンティティの属性図
図4-10 ヘルスチェックイン情報エンティティの属性図
図 4-11 システム全体の ER 図
4.2.2 論理設計
論理設計段階の主な作業は、概念設計の ER 図を、システムが保存および管理しやすい 2 次元のテーブル形式に変換することです。この段階はデータベースの詳細設計とも呼ばれ、システム機能モジュールの通常の動作、データ情報の通常の更新などに直接関係します。[13]。設計時には、システムの機能要件や性能要件を満たすために、データベースの標準化や合理性を十分に考慮する必要があります。本システムに関わるデータテーブルの設計内容は以下の通りです。
表 4-1 管理者情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
シリアルナンバー |
いいえ |
2 |
ユーザー名 |
弦 |
ユーザー名 |
はい |
3 |
パスワード |
弦 |
パスワード |
はい |
4 |
役割 |
弦 |
役割 |
はい |
5 |
追加時間 |
日にち |
時間を追加する |
はい |
表 4-2 ユーザー情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
ID |
いいえ |
2 |
ユーザー名 |
弦 |
アカウント |
はい |
3 |
パスワード |
弦 |
パスワード |
はい |
4 |
bumen_id |
整数 |
デパートメント |
はい |
5 |
ヨンフ_名前 |
弦 |
ユーザー名 |
はい |
6 |
ヨンフ_フォン |
弦 |
ユーザーの電話番号 |
はい |
7 |
永湖ID番号 |
弦 |
ユーザーID番号 |
はい |
8 |
ヨンフ_写真 |
弦 |
プロフィールの写真 |
はい |
9 |
性別の種類 |
整数 |
性別 |
はい |
10 |
ヨンフ_メール |
弦 |
Eメール |
はい |
11 |
作成時間 |
日にち |
作成時間 |
はい |
表 4-3 辞書情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
シリアルナンバー |
いいえ |
2 |
dic_code |
弦 |
分野 |
はい |
3 |
dic_name |
弦 |
フィールド名 |
はい |
4 |
コードインデックス |
整数 |
コーディング |
はい |
5 |
インデックス名 |
弦 |
エンコーディング名 |
はい |
6 |
super_id |
整数 |
親フィールド番号 |
はい |
7 |
北珠 |
弦 |
述べる |
はい |
8 |
作成時間 |
日にち |
作成時間 |
はい |
表 4-4 部門情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
ID |
いいえ |
2 |
部員名 |
弦 |
部署名 |
はい |
3 |
bumen_zhize |
弦 |
部門の責任 |
はい |
4 |
bumen_number |
整数 |
部門の人員数 |
はい |
5 |
bumen_content |
弦 |
学科紹介 |
はい |
6 |
挿入時間 |
日にち |
時間を追加する |
はい |
7 |
作成時間 |
日にち |
作成時間 |
はい |
表 4-5 材料情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
ID |
いいえ |
2 |
wuzi_name |
弦 |
材質名 |
はい |
3 |
wuzi_photo |
弦 |
資料写真 |
はい |
4 |
wuzi_types |
整数 |
材料の種類 |
はい |
5 |
wuzi_kucun_number |
整数 |
材料在庫 |
はい |
6 |
wuzi_danwei |
弦 |
ユニット |
はい |
7 |
wuzi_delete |
整数 |
墓石 |
はい |
8 |
wuzi_content |
弦 |
素材紹介 |
はい |
9 |
作成時間 |
日にち |
作成時間 |
はい |
表 4-6 材料申請情報フォーム
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
ID |
いいえ |
2 |
ヨンフ_id |
整数 |
ユーザー |
はい |
3 |
wuzi_id |
整数 |
用品 |
はい |
4 |
wuzishenqing_number |
整数 |
申請数 |
はい |
5 |
ウージシェンチン_コンテンツ |
弦 |
申請内容 |
はい |
6 |
挿入時間 |
日にち |
申請時間 |
はい |
7 |
wuzishenqing_yesno_types |
整数 |
レビュー |
はい |
8 |
wuzishenqing_yesno_text |
弦 |
監査意見 |
はい |
9 |
作成時間 |
日にち |
作成時間 |
はい |
表 4-7 資材輸送情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
ID |
いいえ |
2 |
wuzi_id |
整数 |
用品 |
はい |
3 |
wuziyunshu_uuid_number |
弦 |
配送固有の番号 |
はい |
4 |
wuziyunshu_quxiang |
弦 |
所在 |
はい |
5 |
ウージユンシュ_番号 |
整数 |
出荷数量 |
はい |
6 |
ウージユンシュ_コンテンツ |
弦 |
発送詳細 |
はい |
7 |
wuziyunshu_types |
整数 |
現在のステータス |
はい |
8 |
挿入時間 |
日にち |
時間を追加する |
はい |
9 |
更新時間 |
日にち |
最終更新 |
はい |
10 |
作成時間 |
日にち |
作成時間 |
はい |
表4-8 ヘルスチェックイン情報テーブル
シリアルナンバー |
列名 |
データの種類 |
説明する |
空を許可する |
1 |
ID |
内部 |
ID |
いいえ |
2 |
ヨンフ_id |
整数 |
ユーザー |
はい |
3 |
taka_content |
弦 |
パンチのコメント |
はい |
4 |
挿入時間 |
日にち |
パンチデート |
はい |
5 |
作成時間 |
日にち |
作成時間 |
はい |
第5章システムの導入
5.1管理员角色功能设计
5.1.1管理员首页
通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图5-1所示。
图5-1管理员首页界面
本功能模块的核心代码如下:
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
R r = R.ok();
r.put("token", token);
r.put("role",user.getRole());
r.put("userId",user.getId());
return r;
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UsersEntity user){
EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
PageUtils page = usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
5.1.2个人中心
通过设计的个人中心功能模块,管理用户可以选择修改账号密码,查看个人资料信息,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-1所示,个人信息界面设计如图5-2所示。
图5-1修改密码界面
本功能模块的核心代码如下:
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
usersService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UsersEntity user = usersService.selectById(id);
return R.ok().put("data", user);
}
5.1.3健康打卡管理
通过设计的健康打卡管理功能模块,管理用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图5-3所示。
图5-3健康打卡管理界面
本功能模块的核心代码如下:
/**
* 健康打卡后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody DakaEntity daka, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,daka:{}",this.getClass().getName(),daka.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
// else if("用户".equals(role))
// daka.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
//根据字段查询是否有相同数据
Wrapper<DakaEntity> queryWrapper = new EntityWrapper<DakaEntity>()
.notIn("id",daka.getId())
.andNew()
.eq("yonghu_id", daka.getYonghuId())
.eq("insert_time", new SimpleDateFormat("yyyy-MM-dd").format(daka.getInsertTime()))
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
DakaEntity dakaEntity = dakaService.selectOne(queryWrapper);
if(dakaEntity==null){
dakaService.updateById(daka);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
5.1.4基础数据管理
通过设计的基础数据管理功能模块,管理用户可以管理相关的物资类型信息记录,比如进行查看物资类型的详细信息,修改物资类型的名称信息,删除已经失效的物资类型信息记录等操作,物资类型管理界面设计如图5-4所示。
图5-4物资类型管理界面
本功能模块的核心代码如下:
/**
* 基础数据后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody DictionaryEntity dictionary, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
//根据字段查询是否有相同数据
Wrapper<DictionaryEntity> queryWrapper = new EntityWrapper<DictionaryEntity>()
.notIn("id",dictionary.getId())
.eq("dic_code", dictionary.getDicCode())
.eq("index_name", dictionary.getIndexName())
;
if(dictionary.getDicCode().contains("_erji_types")){
queryWrapper.eq("super_id",dictionary.getSuperId());
}
logger.info("sql语句:"+queryWrapper.getSqlSegment());
DictionaryEntity dictionaryEntity = dictionaryService.selectOne(queryWrapper);
if(dictionaryEntity==null){
dictionaryService.updateById(dictionary);//根据id更新
//如果字典表修改数据的话,把数据再重新查出,放入监听器中
List<DictionaryEntity> dictionaryEntities = dictionaryService.selectList(new EntityWrapper<DictionaryEntity>());
ServletContext servletContext = request.getServletContext();
Map<String, Map<Integer,String>> map = new HashMap<>();
for(DictionaryEntity d :dictionaryEntities){
Map<Integer, String> m = map.get(d.getDicCode());
if(m ==null || m.isEmpty()){
m = new HashMap<>();
}
m.put(d.getCodeIndex(),d.getIndexName());
map.put(d.getDicCode(),m);
}
servletContext.setAttribute("dictionaryMap",map);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
5.1.5物资管理
通过设计的物资管理功能模块,管理用户可以管理相关的物资信息记录,比如进行查看物资的详细信息,修改物资的库存信息,删除已经失效的物资信息记录等操作,物资管理界面设计如图5-5所示。
图5-5物资管理界面
本功能模块的核心代码如下:
/**
* 物资后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody WuziEntity wuzi, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,wuzi:{}",this.getClass().getName(),wuzi.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
//根据字段查询是否有相同数据
Wrapper<WuziEntity> queryWrapper = new EntityWrapper<WuziEntity>()
.notIn("id",wuzi.getId())
.andNew()
.eq("wuzi_name", wuzi.getWuziName())
.eq("wuzi_types", wuzi.getWuziTypes())
.eq("wuzi_kucun_number", wuzi.getWuziKucunNumber())
.eq("wuzi_danwei", wuzi.getWuziDanwei())
.eq("wuzi_delete", wuzi.getWuziDelete())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
WuziEntity wuziEntity = wuziService.selectOne(queryWrapper);
if("".equals(wuzi.getWuziPhoto()) || "null".equals(wuzi.getWuziPhoto())){
wuzi.setWuziPhoto(null);
}
if(wuziEntity==null){
wuziService.updateById(wuzi);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
5.1.6物资申请管理
通过设计的物资申请管理功能模块,管理用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,修改物资的申请时间信息,删除已经失效的物资申请信息记录等操作,物资申请管理界面设计如图5-6所示。
图5-6物资申请管理界面
本功能模块的核心代码如下:
/**
* 物资申请后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
else if("用户".equals(role))
wuzishenqing.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
wuzishenqing.setInsertTime(new Date());
wuzishenqing.setWuzishenqingYesnoTypes(1);
wuzishenqing.setCreateTime(new Date());
wuzishenqingService.insert(wuzishenqing);
return R.ok();
}
/**
* 物资申请后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody WuzishenqingEntity wuzishenqing, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,wuzishenqing:{}",this.getClass().getName(),wuzishenqing.toString());
wuzishenqingService.updateById(wuzishenqing);//根据id更新
return R.ok();
}
5.1.7物资运输管理
通过设计的物资运输管理功能模块,管理用户可以管理相关的物资运输信息记录,比如进行查看物资运输的详细信息,修改物资运输的当前状态信息,删除已经失效的物资运输信息记录等操作,物资运输管理界面设计如图5-7所示。
图5-7物资运输管理界面
本功能模块的核心代码如下:
/**
* 物资运输后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody WuziyunshuEntity wuziyunshu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
wuziyunshu.setUpdateTime(new Date());
wuziyunshu.setInsertTime(new Date());
wuziyunshu.setCreateTime(new Date());
wuziyunshuService.insert(wuziyunshu);
return R.ok();
}
/**
* 物资运输后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody WuziyunshuEntity wuziyunshu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,wuziyunshu:{}",this.getClass().getName(),wuziyunshu.toString());
wuziyunshu.setUpdateTime(new Date());
wuziyunshuService.updateById(wuziyunshu);//根据id更新
return R.ok();
}
5.1.8用户管理
通过设计的用户管理功能模块,管理用户可以管理相关的用户信息资料,比如进行查看用户的详细资料,修改用户的联系方式,删除已经注销的用户信息记录等操作,用户管理界面设计如图5-8所示。
图5-8用户管理界面
本功能模块的核心代码如下:
/**
* 用户后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
//根据字段查询是否有相同数据
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.notIn("id",yonghu.getId())
.andNew()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.or()
.eq("yonghu_id_number", yonghu.getYonghuIdNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){
yonghu.setYonghuPhoto(null);
}
if(yonghuEntity==null){
yonghuService.updateById(yonghu);//根据id更新
return R.ok();
}else {
return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");
}
}
5.1.9部门管理
通过设计的部门管理功能模块,管理用户可以管理相关的部门信息记录,比如进行查看部门的详细信息,修改部门的职责信息,删除已经失效的部门信息记录等操作,部门管理界面设计如图5-9所示。
图5-9部门管理界面
本功能模块的核心代码如下:
/**
* 部门后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody BumenEntity bumen, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,bumen:{}",this.getClass().getName(),bumen.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
//根据字段查询是否有相同数据
Wrapper<BumenEntity> queryWrapper = new EntityWrapper<BumenEntity>()
.notIn("id",bumen.getId())
.andNew()
.eq("bumen_name", bumen.getBumenName())
.eq("bumen_zhize", bumen.getBumenZhize())
.eq("bumen_number", bumen.getBumenNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
BumenEntity bumenEntity = bumenService.selectOne(queryWrapper);
if(bumenEntity==null){
bumenService.updateById(bumen);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
5.2用户功能设计
5.2.1用户首页
通过设计的首页功能模块,管理用户可以成功登录系统,并且选择点击相关的功能模块按钮,操作和实现自己所需要的功能,管理员首页解饿设计如图5-10所示。
图5-10用户首页界面
本功能模块的核心代码如下:
/**
* 首页后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>()
.eq("username", yonghu.getUsername())
.or()
.eq("yonghu_phone", yonghu.getYonghuPhone())
.or()
.eq("yonghu_id_number", yonghu.getYonghuIdNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);
if(yonghuEntity==null){
yonghu.setCreateTime(new Date());
yonghu.setPassword("123456");
yonghuService.insert(yonghu);
return R.ok();
}else {
return R.error(511,"账户或者用户手机号或者用户身份证号已经被使用");
}
}
5.2.2个人中心
通过设计的个人中心管理功能模块,用户可以选择查看个人资料信息,选择更新个人相关的资料信息记录;也可以选择修改账号密码,通过不定期的对个人账户密码进行更新,保障个人信息安全,修改密码界面设计如图5-11所示,个人信息界面设计如图5-12所示。
图5-11修改密码界面
图5-12个人信息界面
本功能模块的核心代码如下:
//查询是否重复
//账户
List<YonghuEntity> yonghuEntities_username = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("username", seachFields.get("username")));
if(yonghuEntities_username.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_username){
repeatFields.add(s.getUsername());
}
return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//用户手机号
List<YonghuEntity> yonghuEntities_yonghuPhone = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("yonghu_phone", seachFields.get("yonghuPhone")));
if(yonghuEntities_yonghuPhone.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_yonghuPhone){
repeatFields.add(s.getYonghuPhone());
}
return R.error(511,"数据库的该表中的 [用户手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
//用户身份证号
List<YonghuEntity> yonghuEntities_yonghuIdNumber = yonghuService.selectList(new EntityWrapper<YonghuEntity>().in("yonghu_id_number", seachFields.get("yonghuIdNumber")));
if(yonghuEntities_yonghuIdNumber.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(YonghuEntity s:yonghuEntities_yonghuIdNumber){
repeatFields.add(s.getYonghuIdNumber());
}
return R.error(511,"数据库的该表中的 [用户身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
yonghuService.insertBatch(yonghuList);
return R.ok();
}
5.2.3健康打卡管理
通过设计的健康打卡管理功能模块,用户可以管理相关的健康打卡信息记录,比如进行查看健康打卡的详细信息,修改健康打卡的日期信息,删除已经失效的健康打卡信息记录等操作,健康打卡管理界面设计如图5-13所示。
图5-13健康打卡管理界面
本功能模块的核心代码如下:
/**
* 健康打卡后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
DakaEntity daka = dakaService.selectById(id);
if(daka !=null){
//entity转view
DakaView view = new DakaView();
BeanUtils.copyProperties( daka , view );//把实体数据重构到view中
//级联表
YonghuEntity yonghu = yonghuService.selectById(daka.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
5.2.4物资管理
通过设计的物资管理功能模块,管理用户可以查看相关的物资信息记录,可以查到物资名称、物资图片、物资类型、物资库存等详细信息,物资管理界面设计如图5-14所示。
图5-14物资管理界面
本功能模块的核心代码如下:
/**
* 物资后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
WuziEntity wuzi = wuziService.selectById(id);
if(wuzi !=null){
//entity转view
WuziView view = new WuziView();
BeanUtils.copyProperties( wuzi , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
5.2.5物资申请管理
通过设计的物资申请管理功能模块,用户可以管理相关的物资申请信息记录,比如进行查看物资申请的详细信息,新增相关的物资申请信息记录,物资申请管理界面设计如图5-15所示。
图5-15物资申请管理界面
本功能模块的核心代码如下:
/**
* 物资申请后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
WuzishenqingEntity wuzishenqing = wuzishenqingService.selectById(id);
if(wuzishenqing !=null){
//entity转view
WuzishenqingView view = new WuzishenqingView();
BeanUtils.copyProperties( wuzishenqing , view );//把实体数据重构到view中
//级联表
WuziEntity wuzi = wuziService.selectById(wuzishenqing.getWuziId());
if(wuzi != null){
BeanUtils.copyProperties( wuzi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setWuziId(wuzi.getId());
}
//级联表
YonghuEntity yonghu = yonghuService.selectById(wuzishenqing.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
5.2.6物资运输管理
通过设计的物资运输管理功能模块,用户可以查看相关的物资运输信息记录,比如查到物资名称、物资图片、单位、运输数量、当前状态等详细信息,物资运输管理界面设计如图5-16所示。
图5-16物资运输管理界面
本功能模块的核心代码如下:
/**
* 物资运输后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
WuziyunshuEntity wuziyunshu = wuziyunshuService.selectById(id);
if(wuziyunshu !=null){
//entity转view
WuziyunshuView view = new WuziyunshuView();
BeanUtils.copyProperties( wuziyunshu , view );//把实体数据重构到view中
//级联表
WuziEntity wuzi = wuziService.selectById(wuziyunshu.getWuziId());
if(wuzi != null){
BeanUtils.copyProperties( wuzi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setWuziId(wuzi.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
第六章 系统测试
6.1 测试概述
系统测试是将系统的软件、硬件看成一个整体,对系统相关功能模块设计进行测试。系统测试阶段首要的工作任务就是根据相关的测试要求书,检验系统开发是否可以达到所规定的设计要求。在测试的过程中,可以在非常短的时间中,快速地查找系统存在漏洞,并尽快对其进行解决和处理,达到改进和完善系统的目的[14]。白盒测试和黑盒测试是相关测试人员使用较多的两种测试方法。白盒测试又被称为结构测试,其主要通过对系统的内部代码、结构进行测试,检测系统的代码结构、逻辑关系、数据结构等内容是否是合理的、有效的,对于某些设计不合理的代码,测试人员将形成相关的程序清单,并将其反馈给开发技术人员,再由开发技术人员对代码进行一定的修改[15]。黑盒测试又被称为功能测试,其主要通过对系统的用户界面、功能实现进行测试,检测相关的功能模块是否设计合理,能否正常使用。测试人员会记录某些设计不合理的,或者不能正常操作的功能模块,并将其撰写成相关的测试报告,并将相关报告告知相关开发人员,开发技术人员根据测试报告,对系统进行更新和完善[16]。除此之外,还有性能测试、单元测试、安全测试等,本人主要使用功能测试对本系统进行检验。
6.2 测试结果
在不同的操作系统、浏览器等测试环境中,对常规应急物资管理系统进行测试,在一定程度上,也影响着系统的测试结果。为了加强系统的适用性和稳定性,本人通过在windows10操作系统的计算机上,使用360、谷歌、IE等不同类型的浏览器,对系统进行了详细的功能测试。测试流程图如图6-1所示,用户登录测试如图6-2、图6-3所示,物资管理测试如图6-4、图6-5所示。
图6-5查询物资信息成功界面
本系统主要使用功能测试的方法进行测试,系统测试的结果表明,本人开发的基于SpringBoot+Vue的常规应急物资管理系统,虽然还存在着一些不足,比如页面不够美观,数据安全有待加强等,但是整体来说,能够满足相关行业管理常规应急物资的相关功能需求,并且有利于改进整个相关行业的管理模式,提高服务质量,提升管理水平。因此,本系统的设计与实现基本上是比较成功。
结 论
本文首先通过介绍课题的研究现状、研究方法等内容,解释系统的研发所具备实用价值和理论依据,便于初步地了解和认识系统。其次通过介绍系统的开发工具,阐明系统开发的实现可能以及技术支持,接着通过系统分析过程,分析系统的研发在现实生活中的需求情况以及运用可行性,再通过设计系统的功能模块、数据库表格等,详细的对系统功能进行设计,有利于更快更好的实现系统,最后通过测试过程,对设计的相关功能模块进行详细地测试,检查和查验相关功能在运行过程是是否会出现问题,能否满足使用需求。
整体来说,本系统的设计是比较理想的,但是由于本人经验不够丰富,时间不够充裕,所设计的系统功能可能不够完备,数据信息不够加密保障,用户界面不够交互,数据安全可能有待加强。本人将提高自己的专业技术水平,学习更加先进的计算机技术,并将其运用到系统的设计中,不断地对系统进行优化和完善,在未来设计出一款功能更强大、页面更美观、数据安全更高的系统软件,提高系统的实用价值,使其能够被到运用更多的应用场景中。
参考文献
[1]王金朔,孙延辉.基于SSM和Java的网上订餐系统设计[J].信息通信,2020(10):99-100.
[2]欧楠.计算机软件开发中 Java 语言的应用分析[J]. 信息与电脑(理论版),2019(04):110-111.
[3]周劼翀.计算机软件开发中 Java 编程语言的应用研究[J]. 信息与电脑(理论版), 2019(05): 131-132.
[4]马梓昂,贾克斌. 基于 Web 的高性能智能快递柜管理系统[J]. 计算机应用与软件,2020, 37(4): 1-5,47.
[5]张海宾.基于 C/S 架构客户端嵌入 B/S 架构系统的设计与实现[J].电子世界, 2020, 4(17): 125-126.
[6]杨兰.计算机软件开发的 JAVA 编程语言及其实际应用[J]. 电子设计工程, 2020, 25(21): 49-52+56.
[7]洪植林. 基于SSM框架的高校实验室信息管理系统的设计与实现[D]. 浙江:浙江工业大学,2020.
[8]徐鹏涛. 基于Vue的前端开发框架的设计与实现[D].山东大学, 2020.DOI:10.27272/d. cnki.gshdu.2020.000715.
[9]乔岚. 基于MyBatis 和 Spring 的JavaEE 数据持久层的研究与应用[J]. 信息与电脑(理论版),2019,378(08): 79-82.
[10]郭冰. 基于MySQL数据库的索引优化研究[J].信息与电脑(理论 版), 2019(12): 154-156+163.
[11]翟剑锟. Spring 框架技术分析及应用研究[D].中国科学院大学(工程管理与信息技术学院), 2020.
[12]梁琰.MySQL 数据库在 PHP 网页中的动态应用研究[J]. 电脑知识与技术, 2019, 15 (09): 7-8.
[13]陈年飞,王麒森,王志勃. MySQL 数据库中关于索引的研究[J]. 信息与电脑(理 论版), 2019(05): 175-176.
[14]张新华, 何永前. 软件测试方法概述[J]. 科技视界, 2019(4):125-125.
[15]Konstantins Gusarovs. An Analysis on Java Programming Language Decompiler Capabilities[J]. Applied Computer Systems,2019,23(2).
[16]Tan Yiyu. A Hardware-oriented Object Model for Java in an Embedded Processor[J]. Microprocessors and Microsystems,2020.
致 谢
大学生活将要结束了,这样想来,时间还真过得非常快。在本次的毕业设计过程中,我需要跟许多帮助过我的人表示最真诚地感谢。非常感谢我的导伦立军华老师,在导师的指导下,我汲取了很多书本上没有记录的专业知识,使得我成功地设计出了基于SpringBoot+Vue的常规应急物资管理系统,也顺利地撰写完了毕业论文。感谢我的同学和朋友们,正当我在设计系统遇到非常棘手的困难时,是我的同学和朋友们帮助我分析问题,寻找问题的最佳解决方案,而后得以成功地解决问题。感谢我的家人,一直不断地支持和鼓励我,为我提供了一个温暖的避风港,让我可以无忧无虑的在学校学习。感谢我的学校,为我们提供了一个师资力量雄厚、图书种类繁多的学习环境,让我们可以在一个良好的学习氛围中,学习到许多有价值的知识,可以使我扩充知识面,扩宽视野,积累专业知识,提高专业水平和能力。由此打下扎实的技术基础,在未来,有利于寻找更多的就业机会,更好的适应社会生活。