SSM人事管理システム
まとめ
科学技術の急速な発展は人々の日常生活に大きな変化をもたらし、電子情報技術の急速な発展により、さまざまな分野における電子情報技術の応用レベルが普及し、応用されています。情報化時代の到来は抗しがたいファッショントレンドとなり、人類の発展の歴史は新たな時代を迎えています。実際の応用では、アプリケーションソフトウェアの就業規則や開発手順を利用して、Java技術を利用した人事管理システムのセキュリティスキームを構築します。
この設計は主に、人間化、高効率、利便性の利点を統合した人事管理システムのセキュリティ ソリューションを実現し、ホームページ、ユーザー管理、部門情報、研修情報、給与情報、従業員情報などの機能モジュールを完成させます。システムはブラウザを介してサーバーと通信し、データのやり取りと変更を実現します。科学的な管理手法と便利なサービスにより、作業効率を向上させ、データ保管のミスや漏れを削減します。人事管理システムのセキュリティ ソリューションは、Java 言語を使用し、MVVM モデルに基づいて Java テクノロジを使用して開発され、MyEclipse 2017 CI 10 コンパイラを使用して記述され、データに関しては、主に Microsoft の MySQL リレーショナル データベースをデータ ストレージとして使用します。フロントエンドのHTML+CSS技術と連携してシステム開発を完了します。
キーワード: セキュリティ方式、Java 言語、リレーショナル データベース、データ ストレージ
SSM人事管理システム
概要
科学技術の急速な発展は人々の日常生活に大きな変化をもたらしました。電子情報技術の急速な発展により、電子情報技術の応用レベルはさまざまな分野に普及し、応用されています。情報化時代の到来は抗しがたいファッショントレンドとなり、人類の発展の歴史は新たな時代を迎えています。実際の応用では、アプリケーションソフトウェアの作業ルールと開発手順に従って、Javaテクノロジーを使用して人事管理システムのセキュリティスキームを構築します。
この設計は主に、人間化、高効率、利便性の利点を統合した人事管理システムのセキュリティスキームを実現し、ホームページ、ユーザー管理、部門情報、研修情報、給与情報、従業員情報などの機能モジュールを完成させます。システムはブラウザを介してサーバーと通信し、データの対話と変更を実現します。科学的な管理と便利なサービスにより、作業効率を向上させ、データ保存のエラーや漏れを削減します。人事管理システムのセキュリティ スキームは、Java 言語と MVVM モードに基づく Java テクノロジを使用します。MyEclipse 2017 CI 10 コンパイラーで書かれています。データに関しては、主に Microsoft の MySQL リレーショナル データベースがデータ記憶媒体として使用されます。
キーワード:安全スキーム。Java 言語。リレーショナルデータベース。データストレージ
従業員管理の効率を向上させ、不要な経費を削減し、人事管理スタッフが企業の人事成果の基本状況を完全に把握することを促進します。したがって、専用の企業人事管理システムを設計および開発することが非常に重要です。ただし、具体的な制度設計・導入については、各企業の人事管理状況に応じて実施することとなります。システムの開発では、まず既存のシステムの欠点を理解し、新しいシステムを開発するためのより便利なソリューションを提供する必要があります。これにより、管理担当者は日常の管理作業プロセスの作業効率を向上させ、企業の業務効率を向上させることができます。リソースをより効果的に割り当て、企業の日常管理レベルを向上させます。
企業の現在の実態に応じて、開発者は個人が所有するコンピュータハードウェア機器とソフトウェア条件を使用して、思考、仕事の考え方、仕事の方法の観点からいくつかの基本的な人事情報を実現するための企業人事管理システムの完全なセットを開発します。 . 追加、削除、変更します。従業員管理担当者の負担を軽減するためには、業務量の多さやミスの多い手作業の問題を根本的に解決する必要があると同時に、従業員管理分野の今後の発展の必然的な流れでもあります。
企業人事管理システムの開発の歴史は、1960 年代後半にまで遡ります。当時、コンピュータ技術はすでに実用化段階に入っており、大企業では手作業で給与を計算して支払うのは時間と手間がかかり、間違いも起きやすかったため、この矛盾を解決するために、第一世代の企業人事管理システムが登場しました。存在へと。当時は技術的条件や要件の制約から利用者が非常に少なく、せいぜい非財務情報や過去の給与情報を含まず、レポート作成機能もほとんどない自動給与計算ツールに過ぎなかった。 . 機能と給与データ分析機能。しかし、その登場は、コンピュータの高速性と自動化で膨大な手作業を代替し、コンピュータの高精度で手作業のミスやミスを回避し、大規模な集中管理を実現するという人事管理の明るい展望を示した。大規模な企業の給与計算が可能になります。
企業の人事管理システムの変革は 1990 年代後半に現れました。市場競争のニーズにより、人材をどのように引き付けて維持し、人材の創造性を刺激するか、仕事の責任と仕事の熱意が企業の盛衰に関わる重要な要素となり、人材は企業の最も重要な資産の1つとなっています。企業。「公正・公平・合理的」な企業経営理念と企業経営レベルの向上に伴い、パソコンやデータベース技術、クライアントの普及などにより、企業の人事管理システムに対する社会の要求はますます高まっています。 /サーバー技術、特にインターネット/イントラネット技術の発展により、第 3 世代の企業人事管理システムの登場は避けられません。第3世代企業向け人事管理システムの特徴は、人事管理の観点から、給与・福利厚生、採用、個人のキャリア設計、賞罰、職位管理、業績管理、など)、職務内容、個人情報、履歴データなど)をまとめて管理し、統合された情報源を形成します。フレンドリーなユーザー インターフェイス、強力なレポート生成ツール、分析ツール、および情報共有により、人事マネージャーは日常の重労働から解放され、戦略的観点から企業の人事計画とポリシーを検討することに集中できます。
最初の章は序文であり、この記事の始まりであり、このトピックの研究背景と研究の重要性についてのテキストの説明がいくつかあります。
第 2 章では、人材管理システムのセキュリティ スキームで使用される開発手法と開発ツールを検討します。
3 章はシステム分析部分で、システム全体の要件の説明、機能面からのシステム要件の分析、システムが実現可能かどうかの非機能分析が含まれます。
第 4 章は、この記事の重要な部分であるシステム設計部分であり、システム アーキテクチャの詳細な設計といくつかの主要な機能モジュールの設計の説明を提供します。
第 5 章はシステムの具体的な実現であり、システムの各モジュールの具体的な実現を紹介します。
第 6 章では、前の章に基づいてシステムをテストし、実行します。
最後に、システムを真剣に総括し、将来への新たな展望を持ちます。
現在人気の「SSM Combination Framework」は、Spring + SpringMVC + MyBatis の略称であり、多くの人が求めています。Web プロジェクト用のフレームワーク。通常はより単純なデータ ソース。Spring は軽量の制御フレームワーク (IoC) の反転に属していますが、サーフェス指向コンテナー (AOP) でもあります。SpringMVCはコントローラの分類作業モードでよく使われ、モデルオブジェクトから分離され、プログラムオブジェクトの役割はATMで処理されます。この分離処理により、システム全体のカスタマイズが容易になります。MyBatis は、一般的な SQL クエリをサポートし、ストアド プロシージャの高度なマッピングのためのデータの最適化を可能にする優れた持続性フレームワークです。大規模なJava Webアプリケーションは開発コストが高いため、開発後のメンテナンスが難しく、開発過程で解決が困難な問題がいくつかあります。そこで、ビジネス階層とビジネス階層を構築できる「SSMコンポジションフレームワーク」を採用しています。は、この問題に対する優れた解決策を提供します。
Java は主に CORBA テクノロジーとセキュリティ モデルを採用しており、インターネット アプリケーションのデータを保護できます。また、EJB (Enterprise JavaBeans)、Java サーブレット API、SSM (Java サーバー ページ)、および XML テクノロジーの包括的なサポートも提供します。JAVA 言語はオブジェクト指向言語です。指定されたタスクを完了するための最も基本的なメソッドを提供します。開発者は、いくつかの概念を理解するだけで、いくつかのアプリケーションを作成できます。Java プログラムは比較的小さいため、そのコードは小さなマシン上で実行できます。Java は、カプセル化、継承、ポリモーフィズムという 3 つの主な機能を備えたコンピューター プログラミング言語で、エンタープライズ Web アプリケーション開発やモバイル アプリケーション開発で広く使用されています。
Java 言語と一般的なコンパイラおよびリテラル変換の違いは、Java ではまずソース コードをバイトコードに変換し、次にそれをさまざまな JVM 上で実行できる JVM 用の実行可能ファイルに変換することです。したがって、そのクロスプラットフォーム特性が実現されます。このため、初期の頃は Java が非常に遅くなっていましたが、Java が開発されるにつれて改善されました。
-
- MySQLデータベース
科学技術の進歩は、日常生活に多くの利便性をもたらしました。教室のプロジェクターには仮想イメージング技術が使用され、デジタルカメラには光電検出技術が使用されています。たとえば、スーパーマーケットの倉庫に出入りする商品の記録には情報倉庫が必要です。この情報ウェアハウスはデータベースであり、今回の人事管理システムのセキュリティ ソリューションにもこのテクノロジーのサポートが必要です。
MySQL ソフトウェアを使用する理由は、複数のユーザーがアクセスできること、およびその中にアーカイブなどが存在するためです。データを分類してからテーブルに分けて格納するという特殊な操作により、データ管理システム自体の速度が向上し、データベースを柔軟に利用できるようになります。MySQL のコードは公開されており、他の人がそれを 2 回コンパイルしてアップグレードすることができます。この機能により、ユーザーのコストを削減し、適切なソフトウェアと組み合わせて優れた Web サイト システムを構築できます。欠点もありますが、あらゆる面でユーザーの主流のアプリケーションです [8]。
B/S (ブラウザ/サーバー) は、以前のアーキテクチャよりも便利なアーキテクチャです。Web サーバーを使用してデータの転送と交換を完了します。クライアントとしてブラウザをダウンロードするだけで、作業は「スリム化」効果を達成し、ソフトウェアのノンストップインストールの問題を考慮する必要はありません[9]。
MyEclipse は Genuitec によって開発されており、非常に強力な JavaEE 統合開発環境です。これには、完全なコーディング、デバッグ、テスト、公開機能 [10]、JSP、Spring、CSS、JavaScript、SpringMVC、HTML、JSF、Mybatis、SQL の完全サポートが含まれます。他のテクノロジー。アーキテクチャの観点から見ると、MyEclipse の機能は、JavaEE モデル、Web 開発ツール、EJB 開発ツール、JavaEE プロジェクト展開サービス、アプリケーション サーバー用コネクタ、データベース サービス、および MyEclipse 統合ヘルプ [11] の 7 つのカテゴリに分類できます。
MyEclipse には、上記の機能カテゴリごとに対応する機能部品があり、一連のプラグインによって実現されます。MyEclipse のモジュール構造により、他のモジュールに影響を与えることなく、いずれかのモジュールを独立して拡張およびアップグレードできます。強力な MyEclipse アプリケーション開発プラットフォームは、Eclipse プラグインであるだけでなく、JavaEE の強力な統合開発環境でもあります [12]。
-
- Vue.jsの主な機能
Vue.js は、ユーザー インターフェイスを構築するための進歩的なフレームワークです。他の強力なフレームワークとは異なり、Vue はボトムアップの増分開発で設計されています。Vue のコア ライブラリはビュー レイヤーのみに焦点を当てており、学習や他のライブラリや既存のプロジェクトとの統合が非常に簡単です。一方、Vue は、Vue エコシステムによってサポートされる単一ファイル コンポーネントとライブラリを使用して開発された複雑な単一ページ アプリケーションを駆動する能力を十分に備えています。
Vue.js の目標は、可能な限り単純な API を使用して、応答性の高いデータ バインディングと合成ビュー コンポーネントを有効にすることです。
Vue.js 自体は包括的なフレームワークではなく、ビュー層のみに焦点を当てています。したがって、学習が非常に簡単で、他のライブラリや既存のプロジェクトとの統合も非常に簡単です。一方、Vue.js を関連ツールやサポート ライブラリと併用すると、複雑なシングルページ アプリケーションを強化することもできます。
この設計は、MySQL データベースと Myeclipse を使用した Java および JSP テクノロジを使用した B/S モードに基づいており、全体的な実現可能性は次の 3 つの側面に分けられます。
いわゆる技術的実現可能性とは、初期段階で計画した機能を限られた時間内で満たせるかどうかを指します。開発・設計で解決できない問題が発生するかどうか。完成したプロジェクトがうまく適用できるか、不足点はないか、後のメンテナンスに大きな困難がないか。システムを評価した結果、既存のテクノロジーで目標を達成できることが判明しました。JSP技術による動的なページの実現、依存性の低い設計パターンの組み込み、柔軟なデータベース、安定したサーバーにより、システム全体の運用効率が大幅に向上します。技術レベルで目標を達成することはナンセンスではないことがわかります。
プロジェクトで使用されるツールのほとんどは現在一般的なオープンソースで無料であるため、開発の初期段階ではプロジェクトに使用される資金が大幅に削減され、ソフトウェアの開発は開発期間中の資金の影響を受けません。プロジェクトの立ち上げ時期にあるため、経済的にはまだ実現可能です。ユーザーのニーズを満たすために、最小限のコストを使用するようにしてください。人件費や設備費に充てるための資金を節約します。ペーパーレス化と高効率化の道はますます進んでいきます。
この機能を実現するためのシステムの操作は非常に簡単で、一般的なコンピュータの一般的な構成で動作し、コンピュータの基本的な使用常識を大まかに理解していればスムーズに使用することができます。コンピュータはインターネットに接続する機能を備えており、システムに正常にアクセスできますが、オペレータに特別な能力は必要なく、業務プロセスを理解し、専門知識に基づいて正しく動作するだけで利用できるため、セキュリティソリューションが必要となります。人事管理システムが運用可能かつ実現可能である。
システムの開発・設計の前に、機能の事前構想を立て、管理システムがどのようなセクションで構成され、各セクションがどのような機能を持っているのか、全体の設計がユーザーのニーズを満たしているのかを把握し、詳細な分析と要約を行う必要があります。開発されたシステムの機能を統合して、完全なシステムを設計し、実装します。ユーザーと開発者のコミュニケーションを分析し、理解を深め、システムを最大限に機能させる。
管理者のユースケース図を以下に示します。
図 3-1 管理者の使用例図
従業員のユースケース図を以下に示します。
図 3-2 ユーザーの使用例図
人事管理システムのセキュリティ ソリューションの要件を分析した後、システム全体は主に管理者と従業員の 2 つの部分に分かれており、各モジュールの分岐機能は異なります。関数を次のように説明します。
スタッフモジュール:
アカウントのログイン認証。
プロファイル情報を管理し、変更可能な情報項目を変更します。
従業員トレーニングのクエリを実行し、同時にトレーニング記録の履歴を表示します。
従業員の給与を照会し、同時に既存の給与記録の履歴を確認します。
管理モジュール:
従業員の維持、従業員アカウントの確認、従業員のログイン権限の凍結、または従業員アカウントの削除を行います。
アナウンスを公開し、アナウンスの破棄、アナウンス データの更新、アナウンス データのあいまい検索などを行うことができます。
従業員のトレーニングデータを管理します。
システムには、パフォーマンス要件、最大収容ユーザー数、安定性、使いやすさなど、機能以外の要件も数多くあります。このシステムの分析では、人が使用するシステムであるため、使いやすさの要件を考慮する必要があります。そのため、システムが理解しやすく、簡単であるように、ユーザーの視点からユーザーエクスペリエンスを十分に考慮する必要があります。使いやすく、操作も簡単です。
第 1 レベルのデータ フローチャートには、ログイン、ユーザー機能、検索保守などのモジュールが含まれています。ログイン モジュールで使用されるデータはユーザー アカウント文書を保存し、ユーザー機能モジュールが必要とするストレージは各ユーザー機能モジュールのデータ ファイルです。検索メンテナンスは上記を使用し、キーワードによりデータ文書を検索します。
システムのレイヤーごとのデータ フロー図を次の図に示します。
図 3-2 システムデータフロー図(1 層)
現在、B/S システムの主なデータ アクセス方法は、ユーザーがブラウザ ページからシステムにアクセスし、ユーザーがサーバーに送信したリクエストをシステムが自動的に処理することです。システムの背景ページ上で対応する操作を行うと、サーバーから配信される処理結果を確認できます。人事管理システムのセキュリティ スキームは、主にビュー、モデル、制御のアーキテクチャ設計の 3 つの層に分かれています。ビュー層では主にサーバーからクライアントにフィードバック表示されるデータの操作を行い、モデル層では主に関連するビジネスロジックやデータ統合などを扱い、最後の制御層はビューとビューの間にあります。 2 つの層間の関係を調整し、最終的にデータ伝送を実装します。
システム構成図を次の図に示します。
図 4-1 システム構成図
システム設計の目的は、システムに含まれるすべての機能構造を分析し、開発者がシステムを設計、開発、実装するための準備を行うことです。予備的な需要調査、分析、分類の後、決定された全体的な需要には主に複数のモジュール、つまりユーザー管理、ユーザー管理、部門情報、トレーニング情報、給与情報、従業員情報が含まれます。システム全体の役割は 2 つの部分に分かれており、1 つは従業員、もう 1 つは管理者です。権限の配分も明確で、従業員は情報の閲覧に加えて自分のアカウント情報の照会や管理も行うことができ、管理者が最高権限の所有者となります。
システムの機能構成図を下図に示します。
図 4-2 システム機能構成図
開発するシステムでは、ER 図を使用すると、他の人がシステムのトランザクションとそれらの間の関係をより迅速かつ簡単に理解できるようになります。システム分析段階で導き出された結論によれば、人事管理システムのセキュリティスキームには従業員情報、部門情報、研修情報、給与情報、従業員情報という複数のエンティティが存在することが判明しました。
システム全体の ER 図を次の図に示します。
データベースの論理構造は、データベース内の ER 図を特定のフィールドで記述します。フィールドとデータ型の説明を使用してオブジェクトの特性を具体化し、最終的には特定の論理関係を持つデータベース テーブル構造を形成します。人事管理システムのセキュリティソリューションに必要なデータ構造テーブルの一部を次の表に示します。
普通のユーザー |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
普通のユーザーID |
整数 |
11 |
いいえ |
主キー |
共通ユーザーID |
ユーザー名 |
可変長文字 |
64 |
はい |
ユーザー名 |
|
フルネーム |
可変長文字 |
64 |
はい |
名前 |
|
性別 |
可変長文字 |
64 |
はい |
性別 |
|
年 |
可変長文字 |
64 |
はい |
年 |
|
検査状態 |
可変長文字 |
16 |
いいえ |
承認状況 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
ユーザーID |
整数 |
11 |
いいえ |
ユーザーID |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
部門情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
部門情報ID |
整数 |
11 |
いいえ |
主キー |
部門情報ID |
部署名 |
可変長文字 |
64 |
はい |
部署名 |
|
部門_カバー |
可変長文字 |
255 |
はい |
部門カバー |
|
オフィスの住所 |
可変長文字 |
64 |
はい |
オフィスの住所 |
|
責任範囲 |
可変長文字 |
64 |
はい |
責任 |
|
大臣名 |
可変長文字 |
64 |
はい |
大臣名 |
|
連絡先番号 |
可変長文字 |
64 |
はい |
連絡先番号 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
従業員情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
従業員情報ID |
整数 |
11 |
いいえ |
主キー |
従業員情報ID |
従業員番号 |
整数 |
11 |
いいえ |
従業員ID |
|
従業員名 |
可変長文字 |
64 |
はい |
従業員の名前 |
|
従業員の性別 |
可変長文字 |
64 |
はい |
従業員の性別 |
|
従業員の年齢 |
可変長文字 |
64 |
はい |
従業員の年齢 |
|
従業員_部門 |
可変長文字 |
64 |
はい |
従業員部門 |
|
従業員の役職 |
可変長文字 |
64 |
はい |
スタッフのポジション |
|
申し込み日 |
日にち |
0 |
はい |
申し込み日 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
普通のユーザー |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
普通のユーザーID |
整数 |
11 |
いいえ |
主キー |
共通ユーザーID |
従業員番号 |
可変長文字 |
64 |
いいえ |
従業員ID |
|
従業員名 |
可変長文字 |
64 |
はい |
従業員の名前 |
|
従業員の性別 |
可変長文字 |
64 |
はい |
従業員の性別 |
|
従業員の年齢 |
可変長文字 |
64 |
はい |
従業員の年齢 |
|
検査状態 |
可変長文字 |
16 |
いいえ |
承認状況 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
ユーザーID |
整数 |
11 |
いいえ |
ユーザーID |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
給与情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
給与情報id |
整数 |
11 |
いいえ |
主キー |
給与情報ID |
従業員番号 |
整数 |
11 |
いいえ |
従業員ID |
|
従業員名 |
可変長文字 |
64 |
はい |
従業員の名前 |
|
従業員_部門 |
可変長文字 |
64 |
はい |
従業員部門 |
|
基本給 |
整数 |
11 |
はい |
基本給 |
|
ボーナス |
整数 |
11 |
はい |
ボーナス |
|
大丈夫 |
整数 |
11 |
はい |
大丈夫 |
|
正味給与 |
可変長文字 |
64 |
はい |
実際の給与 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
トレーニング情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
トレーニング情報ID |
整数 |
11 |
いいえ |
主キー |
研修情報ID |
トレーニング名 |
可変長文字 |
64 |
はい |
トレーニング名 |
|
トレーニング日 |
日にち |
0 |
はい |
トレーニング日 |
|
トレーニングアドレス |
可変長文字 |
64 |
はい |
研修演説 |
|
トレーニングホスト |
可変長文字 |
64 |
はい |
トレーニングモデレーター |
|
備考 |
可変長文字 |
64 |
はい |
述べる |
|
トレーニングコンテンツ |
長文 |
0 |
はい |
トレーニング内容 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
アップロード |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
アップロードID |
整数 |
11 |
いいえ |
主キー |
アップロードID |
名前 |
可変長文字 |
64 |
はい |
ファイル名 |
|
道 |
可変長文字 |
255 |
はい |
アクセスパス |
|
ファイル |
可変長文字 |
255 |
はい |
ファイルパス |
|
画面 |
可変長文字 |
255 |
はい |
表示順 |
|
父親ID |
整数 |
11 |
はい |
親ID |
|
ディレクトリ |
可変長文字 |
255 |
はい |
フォルダ |
|
タイプ |
可変長文字 |
32 |
はい |
ファイルの種類 |
系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。
登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,然后在login.jsp页面发送登录请求,调用src下的mainctrl类的dopost方法来验证。
用户登录模块的IPO如下所示:
输入:用户名和密码。
处理:
1)检测用户输入的账号、密码是否正确及在数据库已对应存在。
2)从数据库中提取记录,并储存在本地的session中(timeout默认=30min)。
3)根据用户名,将其显示在系统首页上。
输出:是否成功的信息。
登录流程图如下所示。
图5-1登录流程图
系统登录界面如下所示。
图5-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;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
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, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台。
如下图所示为系统的首页界面。
图5-3系统首页界面
其中载入前台页面的主要代码如下。
<mapper namespace="com.project.demo.dao.base.BaseMapper">
<select id="selectBaseList" resultType="java.util.LinkedHashMap">
${select}
</select>
<select id="selectBaseCount" resultType="Integer">
${count}
</select>
<select id="selectBaseOne" resultType="Object">
${select}
</select>
<update id="updateBaseSql">
${sql}
</update>
<delete id="deleteBaseSql">
${sql}
</delete>
</mapper>
管理员登录进入人力资源管理系统可以查看管理员:首页、用户管理、部门信息、培训信息、薪资信息、员工信息管理等内容,如图5-4所示。
图5-4管理员信息界面图
用户管理,在用户管理可以查看用户账号、姓名、头像、联系电话、邮箱等信息,并可根据需要进行修改或删除操作,如图5-5所示。
图5-5企业管理界面图
部门信息管理,在部门信息列表可以查看部门名称、部门封面、办公地址、负责范围、部长名称、联系电话等信息,并可根据需要进行修改或删除操作,如图5-6所示。
图5-5部门信息管理界面图
薪资管理,在薪资管理列表可以查看员工编号、员工姓名、员工性别、员工年龄、员工部门、员工职位、等信息,如图5-6所示。
图5-6薪酬管理界面图
培训信息管理,在培训信息列表可以查看培训名称、员工、培训地点、培训时间、培训内容等信息,并可根据需要进行修改或删除操作,如图5-7所示。
图5-7培训信息管理界面图
用户登录进入人力资源管理系统可以查看首页、部门信息、培训信息、薪资信息、员工信息等内容,如图5-8所示。
图5-8员工功能界面图
个人中心,在个人信息页面通过填写用户名、用户组、状态、昵称、联系电话、邮箱等内容,并可根据需要对个人信息信息进行修改,如图5-9所示。
图5-9个人中心界面图
员工信息管理,在员工信息列表可以查看员工编号、员工姓名、员工性别、员工年龄、员工部门、员工职位、入职日期等信息,如图5-10所示。
图5-10员工信息管理界面图
在对该系统进行完详细设计和编码之后,就要对人力资源管理系统安全方案的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。
在软件的测试过程中,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业务逻辑上是否与真实的业务逻辑相对应,及时发现代码上或逻辑上的缺陷,以此来来完善系统,提高软件产品的质量,使软件具有良好的用户体验。
登录测试用例表如下所示。
表6-1登录测试用例
测试性能 |
用户或操作员登录系统 |
||
用例目的 |
测试用户或操作员登录系统时功能是否正常 |
||
前提条件 |
进入用户登录页面或操作员登录页面 |
||
输入条件 |
预期输出 |
实际情况 |
|
各项信息不予填写,直接点击登陆按钮 |
不允许登录,提示填写账号相关信息 |
一致 |
|
填写错误的登录名或密码后点击登录系统 |
提示用户名或密码错误,要求重新填写进行登录 |
一致 |
|
填写与验证码信息不一致的信息 |
系统显示出提示信息,表明验证码错误,要求重新填写 |
一致 |
员工培训测试用例表如下所示。
表6-2员工培训测试用例
测试性能 |
用户进行员工培训的操作 |
||
用例目的 |
测试用户进行员工培训操作时,该功能是否正常 |
||
前提条件 |
用户进入员工详情页,该员工能够被培训 |
||
输入条件 |
预期输出 |
实际情况 |
|
对着某员工点击“培训”按钮 |
界面跳转至培训界面 |
一致 |
|
在培训界面,输入必填项,点击“提交”按钮 |
提示“培训成功”,并返回上一级界面 |
一致 |
|
在培训界面,填写培训表单的时候未输入完整,点击“提交”按钮 |
提示“培训失败” |
一致 |
员工管理测试用例表如下所示。
表6-3员工管理测试用例
测试性能 |
员工相关信息管理功能 |
||
用例目的 |
测试系统操作者对员工相关信息进行管理的功能是否正常 |
||
前提条件 |
登录系统进入相关管理页面 |
||
输入条件 |
预期输出 |
实际情况 |
|
进入员工管理界面,点击“录入”按钮,填写所有必填项,点击提交 |
提示“录入成功”,并返回查询界面 |
一致 |
|
进入员工管理界面,点击“录入”按钮,未填写一个或者多个必填项,点击提交 |
提示“录入失败”,请填写必填项 |
一致 |
|
进入员工管理界面,选择要修改的一条数据,点击该条数据后面的“修改”按钮 |
节目跳转至修改界面 |
一致 |
|
在修改界面,修改可修改项后,点击“提交”按钮 |
提示“修改成功”,并返回查询界面 |
一致 |
|
进入员工管理界面,点击某条数据后面的删除按钮 |
提示“是否要删除该数据”,如果用户点击“确定”按钮,则成功删除该条数据,并提示“删除成功”,之后返回查询界面 |
一致 |
经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。
通过人力资源管理系统安全方案的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。
系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
参考文献
[1]徐佩.新时期计算机软件开发技术的应用及发展趋势[J].农家参谋,2019(08):167.
[2]张帅,崔婀娜,魏立波.互联网+健康在线服务平台的设计与实现[J].科技创新与应用,2019(10):91-92.
[3]谷利国,陈存田,张甲瑞.基于B/S模式的人事教育信息管理系统的分析与设计[J].电脑知识与技术,2019,15(10):58-59.
[4]胥新政,强毅.基于JSP的常用金属材料标准检索平台开发设计[J].制造业自动化,2019,41(03):41-43+69.
[5]王祖维,南淮耀,张英.“互联网+”视域下的高校学生公寓管理系统设计与实现——以沈阳师范大学为例[J].现代商贸工业,2019,40(08):187-188.
[6]廖明华,齐攀.学生职业能力测评管理系统的设计与实现[J].广东交通职业技术学院学报,2019,18(01):48-52.
[7]李冬冬,刘华明,毕学慧,王秀友.旧衣申领系统的设计与实现[J].电脑知识与技术,2019,15(08):47-50.
[8]李庆年.“互联网+”视域下的人才招聘管理系统设计与实现[J].国际公关,2019(03):164-165.
[9]刘婷,彭焕峰,邵淑婷.基于云平台的高校监考管理系统[J].电脑知识与技术,2019,15(07):91-92.
[10]赵丙秀.基于百度AI平台的Web人脸注册和登录系统的实现[J].电脑知识与技术,2019,15(07):114-115.
[11]戴昭颖,尹涛.钢铁行业成本预算系统开发应用实践[J].电子技术与软件工程,2019(04):29-30.
[12]曹灿,刘志刚.基于SSH和Layui的工程科学前沿与实践系统[J].工业控制计算机,2019,32(02):91-92+96.
[13]谢路.基于Web的考务管理系统设计与实现[J].福建电脑,2019,35(01):136-137.
[14]张继东.MySQL数据库基于JSP的访问技术[J/OL].电子技术与软件工程,2017,(15):169(2017-08-03).
[15]韩思凡.Web开发中的JSP与HTML的基础应用[J].科学技术创新,2020(14):71-72.
[16]NastitiAndini,DaehaKim,JongAhnChun.Operationalsoilmoisturemodelingusingamulti-stageapproachbasedonthegeneralizedcomplementaryprinciple[J].AgriculturalWaterManagement,2020,231.
[17]A.D.Titisari,D.Phillips,I.W.Warmada,Hartono,A.Idrus.40Ar/39ArgeochronologyofthePongkorlowsulfidationepithermalgoldmineralisation,WestJava,Indonesia[J].OreGeologyReviews,2020,119.
[18]FranciscoOrtin,OscarRodriguez-Prieto,NicolasPascual,MiguelGarcia.HeterogeneoustreestructureclassificationtolabelJavaprogrammersaccordingtotheirexpertiselevel[J].FutureGenerationComputerSystems,2020,105.
[19]SatyaKrismatama、IndahRiyantini、IwangGumilar、LantunParaditaDewanti.Scomberomorusguttatus の釣り具の選択性 (Bloch&Schneider、1801)西ジャワ州パンガンダラン漁場の商品 [J].AsianJournalofFisheriesandAquaticResearch、2020。
[20]ZhongXiangfu、PlaAlbert、RaynerSimon.Jasmine:a Javapipeline for isomiRcharacterization in miRNA-Seqdata[J].バイオインフォマティクス、2020、36(6)。
ありがとう
設計が完了すると、大学生活は終わりを迎えます。大学生活は私にとって最も大切にしている時間であり、大学生活で多くのことを学び、成長することができ、そのすべての思い出が私の心に刻まれています。一緒に学び成長してきた生徒たち、成長過程を教えてくれた先生方のおかげで、御社に心より感謝いたします。
まずは先生に感謝したいと思いますが、デザインの完成には先生の一連のご指導があってこそです。卒業制作の際には、先生が的確なアドバイスをたくさんして下さり、先生の丁寧な仕事姿勢のおかげで、私のデザインが無事に完成することができました。
最後に、大学生活中に私にたくさんの知識を教えていただき、問題に遭遇したときの対処法や解決法を教えてくださった先生方に感謝いたします。ご支援とご協力に感謝いたします。
いいね+お気に入り+フォロー→プライベートメッセージでソースコードとデータベースを受け取ります