springboot エンタープライズ人事管理システム
まとめ
科学技術の急速な発展は人々の日常生活に大きな変化をもたらし、電子情報技術の急速な発展により、さまざまな分野における電子情報技術の応用レベルが普及し、応用されています。情報化時代の到来は抗しがたいファッショントレンドとなり、人類の発展の歴史は新たな時代を迎えています。実際のアプリケーションでは、アプリケーション ソフトウェアの作業ルールと開発手順を使用して、Java テクノロジを使用して企業人事管理システムのセキュリティ スキームを構築します。
この設計は主に、人間化、高効率、利便性の利点を統合した企業人事管理システムのセキュリティ スキームを実現し、ホームページ、サイト管理 (カルーセル マップ、掲示板) ユーザー管理 (管理者、ユーザー登録、従業員ユーザー) を完成させます。コンテンツ管理(ニュース一覧、ニュース分類一覧)、その他管理(部署情報、求人情報、採用情報、履歴書管理、採用情報、研修情報、出勤確認、チェック記録、賞罰情報、給与情報)などの機能モジュール。システムはブラウザを介してサーバーと通信し、データのやり取りと変更を実現します。科学的な管理手法と便利なサービスにより、作業効率を向上させ、データ保管のミスや漏れを削減します。エンタープライズ人事管理システムのセキュリティ ソリューションは、開発に MVVM モデルに基づく Java 言語と Java テクノロジーを使用し、MyEclipse 2017 CI 10 コンパイラーを使用して記述され、データに関しては主に Microsoft の MySQL リレーショナル データベースを使用します。記憶媒体、フロントと連携し、HTML+CSS技術でシステム開発を完了します。
キーワード: セキュリティ方式、Java 言語、リレーショナル データベース、データ ストレージ
Springboot エンタープライズ人事管理システム
概要
科学技術の急速な発展は人々の日常生活に大きな変化をもたらしました。電子情報技術の急速な発展により、電子情報技術の応用レベルはさまざまな分野に普及し、応用されています。情報化時代の到来は抗しがたいファッショントレンドとなり、人類の発展の歴史は新たな時代を迎えています。実際の応用では、アプリケーションソフトウェアの作業ルールと開発手順に従って、Javaテクノロジーを使用して企業人事管理システムのセキュリティスキームを構築します。
この設計は主に、人間化、高効率、利便性の利点を統合した企業人事管理システムのセキュリティ スキームを実現し、ホームページ、サイト管理 (ローテーション チャート、掲示板) ユーザー管理 (管理者、ユーザー登録、従業員ユーザー) コンテンツを完成させます。管理(ニュース一覧、ニュース分類一覧) その他管理(部署情報、求人情報、採用情報、履歴書管理、採用情報、研修情報、勤怠打刻、打刻記録、賞罰情報、給与情報) その他の機能モジュール。システムはブラウザを介してサーバーと通信し、データの対話と変更を実現します。科学的な管理と便利なサービスを通じて、このシステムにより、作業効率が向上し、データ保存時のエラーや欠落が減少します。企業人事管理システムのセキュリティ スキームは、Java 言語と MVVM モードに基づく Java テクノロジを使用します。MyEclipse 2017 CI 10 コンパイラーで書かれています。データに関しては、主にMicrosoftのMySQLリレーショナルデータベースをデータ記憶媒体として使用し、システム開発はフォアグラウンドのHTML + CSSテクノロジーで完了します。
キーワード:安全スキーム。Java 言語。リレーショナルデータベース。データストレージ
目次
従業員管理の効率を向上させ、不要な経費を削減し、人事管理スタッフが企業の人事成果の基本状況を完全に把握することを促進します。したがって、専用の企業人事管理システムを設計および開発することが非常に重要です。ただし、具体的な制度設計・導入については、各企業の人事管理状況に応じて実施することとなります。システムの開発では、まず既存のシステムの欠点を理解し、新しいシステムを開発するためのより便利なソリューションを提供する必要があります。これにより、管理担当者は日常の管理作業プロセスの作業効率を向上させ、企業の業務効率を向上させることができます。リソースをより効果的に割り当て、企業の日常管理レベルを向上させます。
企業の現在の実態に応じて、開発者は個人が所有するコンピュータハードウェア機器とソフトウェア条件を使用して、思考、仕事の考え方、仕事の方法の観点からいくつかの基本的な人事情報を実現するための企業人事管理システムの完全なセットを開発します。追加、削除、修正。従業員管理担当者の負担を軽減するためには、業務量の多さやミスの多い手作業の問題を根本的に解決する必要があると同時に、従業員管理分野の今後の発展の必然的な流れでもあります。
企業人事管理システムの開発の歴史は、1960 年代後半にまで遡ります。当時、コンピュータ技術が実用化段階に入っており、大企業では手作業で給与を計算して支払うのは時間と手間がかかり、間違いも起きやすかったため、この矛盾を解決するために、第一世代の企業人事管理システムが登場しました。が誕生した。当時は技術的条件や要件の制約から利用者が非常に少なく、せいぜい非財務情報や過去の給与情報を含まず、レポート作成機能もほとんどない自動給与計算ツールに過ぎなかった。 . 機能と給与データ分析機能。しかし、その登場は、コンピュータの高速性と自動化で膨大な手作業を代替し、コンピュータの高精度で手作業のミスやミスを回避し、大規模な集中管理を実現するという人事管理の明るい展望を示した。大規模な企業の給与計算が可能になります。
企業の人事管理システムの変革は 1990 年代後半に現れました。市場競争のニーズにより、人材をどのように引き付けて維持し、人材の創造性を刺激するか、仕事の責任と仕事の熱意が企業の盛衰に関わる重要な要素となり、人材は企業の最も重要な資産の1つとなっています。企業。「公正・公平・合理的」な企業経営理念と企業経営レベルの向上に伴い、パソコンやデータベース技術、クライアントの普及などにより、企業の人事管理システムに対する社会の需要が高まっています。 /サーバー技術、特に インターネット/イントラネット技術の発展により、第 3 世代の企業人事管理システムの登場が必然となります。第3世代のエンタープライズ人事管理システムは、人事管理の観点からスタートし、部門管理、給与管理、勤怠管理、採用管理、研修管理など、人事に関するほぼすべてのデータを一元管理するデータベースを利用しているのが特徴です。これらを統合することで、統合された情報源が形成されます。フレンドリーなユーザー インターフェイス、強力なレポート生成ツール、分析ツール、および情報共有により、人事マネージャーは日常の重労働から解放され、戦略的観点から企業の人事計画とポリシーを検討することに集中できます。
最初の章は序文であり、この記事の始まりであり、このトピックの研究背景と研究の重要性についてのテキストの説明がいくつかあります。
第 2 章では、企業人事管理システムのセキュリティ スキームで採用されている開発テクノロジと開発ツールについて検討します。
3 章はシステム分析部分で、システム全体の要件の説明、機能面からのシステム要件の分析、システムが実現可能かどうかの非機能分析が含まれます。
第 4 章は、この記事の重要な部分であるシステム設計部分であり、システム アーキテクチャの詳細な設計といくつかの主要な機能モジュールの設計の説明を提供します。
第 5 章はシステムの具体的な実現であり、システムの各モジュールの具体的な実現を紹介します。
第 6 章では、前の章に基づいてシステムをテストし、実行します。
最後に、システムを真剣に総括し、将来への新たな展望を持ちます。
Spring フレームワークは、制御の反転機能を備えたコンテナを提供するJava プラットフォーム上のオープン ソース アプリケーション フレームワークです。Spring フレームワーク自体にはプログラミング モデルに対する制限はありませんが、Java アプリケーションで頻繁に使用されるため非常に人気があり、後にEJB (EnterpriseJavaBeans) モデルの補足として、または代替として使用されるようになりました。Spring フレームワークは、制御の反転のコア機能の使用や、宣言型トランザクション管理のためのアスペクト指向プログラミングを使用した管理オブジェクトのライフサイクルのコンテナ化を実現するための依存性注入による制御の反転の実装など、開発のための一連のソリューションを提供します。さまざまな永続化テクノロジがデータ アクセスを管理し、開発を容易にする多数の優れた Web フレームワークを提供します。Spring フレームワークには、制御反転 (IOC) の機能があります。IOC は、プロジェクトの保守とテストを容易にするように設計されており、Java リフレクション メカニズムを通じて Java オブジェクトの統合設定と管理の方法を提供します。Spring フレームワークは、コンテナを使用してオブジェクトのライフ サイクルを管理します。コンテナは、XML ファイルまたはクラスの特定の Java アノテーションをスキャンすることでオブジェクトを構成できます。開発者は、依存関係の検索または依存関係の注入を通じてオブジェクトを取得できます。アスペクト指向プログラミング(AOP) フレームワークと同様に、Spring AOP フレームワークはプロキシ モードに基づいており、実行時に構成できます。AOP フレームワークは主にモジュール間の相互関係のためにモジュール化されています。Spring フレームワークの AOP フレームワークは基本的な AOP 機能のみを提供しており、AspectJ フレームワークと比較することはできませんが、AspectJ との統合により基本的なニーズにも対応できます。Spring AOP技術を利用することで、Springフレームワークにおけるトランザクション管理やリモートアクセスなどの機能を実現できます。Spring のトランザクション管理フレームワークは、Java プラットフォームに抽象化メカニズムを導入し、ローカルおよびグローバル トランザクション、およびネストされたトランザクションが、Java プラットフォーム上のほぼすべての環境でセーブポイントを使用して動作できるようにします。Spring は複数のトランザクション テンプレートを統合しており、システムはトランザクション テンプレート、XML または Java アノテーションを通じてトランザクションを設定でき、トランザクション フレームワークにはメッセージングやキャッシュなどの機能が統合されています。Spring のデータ アクセス フレームワークは、開発者がアプリケーションでデータベースを使用するときに遭遇する一般的な問題に対処します。Java: JDBC、iBATS/MyBATIs、Hibernate、Java Data Objects (JDO)、ApacheOJB、Apache Cayne などのすべての一般的なデータ アクセス フレームワークのサポートを提供するだけでなく、Spring のトランザクション管理と併用してデータ アクセスを提供することもできます。柔軟な抽象化。Spring フレームワークは当初、独自の Web MVC フレームワークを構築するつもりはありませんでしたが、開発プロセス中、開発者は既存の Struts Web フレームワークのプレゼンテーション層とリクエスト処理層の間、およびリクエスト処理層とモデルの間の分離が重要であると考えていました。それだけでは十分ではなかったので、彼らは Spring MVC を作成しました。
Java は主に CORBA テクノロジーとセキュリティ モデルを採用しており、インターネット アプリケーションのデータを保護できます。また、EJB (Enterprise JavaBeans)、Java サーブレット API、SSM (Java サーバー ページ)、および XML テクノロジーの包括的なサポートも提供します。JAVA 言語はオブジェクト指向言語です。指定されたタスクを完了するための最も基本的なメソッドを提供します。開発者は、いくつかの概念を理解するだけで、いくつかのアプリケーションを作成できます。Java プログラムは比較的小さいため、そのコードは小さなマシン上で実行できます。Java は、カプセル化、継承、ポリモーフィズムという 3 つの主な機能を備えたコンピューター プログラミング言語で、エンタープライズ Web アプリケーション開発やモバイル アプリケーション開発で広く使用されています。
Java 言語と一般的なコンパイラおよびリテラル変換の違いは、Java ではまずソース コードをバイトコードに変換し、次にそれをさまざまな JVM 上で実行できる JVM 用の実行可能ファイルに変換することです。したがって、そのクロスプラットフォーム特性が実現されます。このため、初期の頃は Java が非常に遅くなっていましたが、Java が開発されるにつれて改善されました。
科学技術の進歩は、日常生活に多くの利便性をもたらしました。教室のプロジェクターには仮想イメージング技術が使用され、デジタルカメラには光電検出技術が使用されています。たとえば、スーパーマーケットの倉庫に出入りする商品の記録には情報倉庫が必要です。この情報ウェアハウスはデータベースであり、今回の企業人事管理システムのセキュリティ ソリューションにもこのテクノロジーのサポートが必要です。
MySQL ソフトウェアを使用する理由は、複数のユーザーがアクセスできること、およびその中にアーカイブなどが存在するためです。データを分類してからテーブルに分けて格納するという特殊な操作により、データ管理システム自体の速度が向上し、データベースを柔軟に利用できるようになります。MySQL のコードは公開されており、他の人がそれを 2 回コンパイルしてアップグレードすることができます。この機能により、ユーザーのコストを削減し、適切なソフトウェアと組み合わせて優れた Web サイト システムを構築できます。欠点もありますが、あらゆる面でユーザーの主流のアプリケーションです [8]。
B/S (ブラウザ/サーバー) は、以前のアーキテクチャよりも便利なアーキテクチャです。Web サーバーを使用してデータの転送と交換を完了します。クライアントとしてブラウザをダウンロードするだけで、作業は「スリム化」効果を達成し、ソフトウェアのノンストップインストールの問題を考慮する必要はありません[9]。
MVVM は、Model-View-ViewModel の短縮形です。これは本質的に MVC の改良版です。MVVM はビューの状態と動作を抽象化し、ビュー UI をビジネス ロジックから分離します。もちろん、ViewModel はこれらのことをすでに行っており、Model のデータを取り出して、コンテンツを表示する必要があるため View に含まれるビジネス ロジックを処理するのに役立ちます。Microsoft の WPF は、Silverlight、オーディオ、ビデオ、3D、アニメーションなどの新しい技術エクスペリエンスをもたらし、より詳細でカスタマイズ可能なソフトウェア UI レイヤーにつながります。同時に、技術レベルでは、WPF はバインディング、依存関係プロパティ、ルーテッド イベント、コマンド、DataTemplate、ControlTemplate などの新機能ももたらします。MVVM (Model-View-ViewModel) フレームワークの起源は、 WPF と組み合わせた MVP (Model-View-Presenter)パターンのアプリケーションから開発および進化した新しいタイプのアーキテクチャフレームワークです。これは、オリジナルの MVP フレームワークに基づいており、ますます複雑になる顧客のニーズに対応するために WPF の新機能が組み込まれています。
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 |
はい |
パンチの種類 |
|
パンチイン日付 |
日にち |
0 |
はい |
パンチデート |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
部門情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
部門情報ID |
整数 |
11 |
いいえ |
主キー |
部門情報ID |
部門番号 |
可変長文字 |
64 |
はい |
部門番号 |
|
部署名 |
可変長文字 |
64 |
はい |
部署名 |
|
部門数 |
可変長文字 |
64 |
はい |
部門の人員数 |
|
部門プロフィール |
文章 |
0 |
はい |
G |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
従業員_ユーザー |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
従業員ユーザーID |
整数 |
11 |
いいえ |
主キー |
従業員ユーザーID |
フルネーム |
可変長文字 |
64 |
はい |
名前 |
|
性別 |
可変長文字 |
64 |
はい |
性別 |
|
年 |
可変長文字 |
64 |
はい |
年 |
|
ID |
可変長文字 |
64 |
はい |
IDカード |
|
部署名 |
可変長文字 |
64 |
はい |
部署名 |
|
役職名 |
可変長文字 |
64 |
はい |
職名 |
|
入場時間 |
日にち |
0 |
はい |
入場時間 |
|
検査状態 |
可変長文字 |
16 |
いいえ |
承認状況 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
ユーザーID |
整数 |
11 |
いいえ |
ユーザーID |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
求人情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
ジョブ情報ID |
整数 |
11 |
いいえ |
主キー |
求人情報ID |
位置番号 |
可変長文字 |
64 |
はい |
ジョブ番号 |
|
役職名 |
可変長文字 |
64 |
はい |
職名 |
|
ポジション数 |
可変長文字 |
64 |
はい |
投稿数 |
|
仕事内容 |
文章 |
0 |
はい |
仕事内容 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
パンチインレコード |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
パンチインレコードID |
整数 |
11 |
いいえ |
主キー |
パンチレコードID |
パンチインタイプ |
可変長文字 |
64 |
はい |
パンチの種類 |
|
パンチイン日付 |
可変長文字 |
64 |
はい |
パンチデート |
|
クロックインタイム |
日付時刻 |
0 |
はい |
パンチタイム |
|
フルネーム |
可変長文字 |
64 |
はい |
名前 |
|
スタッフ |
整数 |
11 |
はい |
スタッフ |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
採用情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
採用情報ID |
整数 |
11 |
いいえ |
主キー |
採用情報ID |
募集_いいえ |
可変長文字 |
64 |
はい |
募集番号 |
|
募集職種 |
可変長文字 |
64 |
はい |
求人情報 |
|
採用数 |
整数 |
11 |
はい |
採用者数 |
|
募集時間 |
可変長文字 |
64 |
はい |
募集時期 |
|
年齢要件 |
可変長文字 |
64 |
はい |
年齢要件 |
|
給与予測 |
可変長文字 |
64 |
はい |
給与予測 |
|
教育要件 |
文章 |
0 |
はい |
学歴要件 |
|
経験要件 |
文章 |
0 |
はい |
経験要件 |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
履歴書管理 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
履歴書管理ID |
整数 |
11 |
いいえ |
主キー |
履歴書管理ID |
募集_いいえ |
可変長文字 |
64 |
はい |
募集番号 |
|
募集職種 |
可変長文字 |
64 |
はい |
求人情報 |
|
フルネーム |
可変長文字 |
64 |
はい |
名前 |
|
性別 |
可変長文字 |
64 |
はい |
性別 |
|
ID |
可変長文字 |
64 |
はい |
IDカード |
|
教育 |
可変長文字 |
64 |
はい |
学歴 |
|
国家 |
可変長文字 |
64 |
はい |
国籍 |
|
政治的展望 |
可変長文字 |
64 |
はい |
政治的地位 |
|
年 |
可変長文字 |
64 |
はい |
年 |
|
希望給与 |
可変長文字 |
64 |
はい |
希望給与 |
|
ユーザーアカウント |
整数 |
11 |
はい |
ユーザーアカウント |
|
ファイル |
可変長文字 |
255 |
はい |
書類 |
|
教育経験 |
文章 |
0 |
はい |
教育経験 |
|
実践的な背景 |
文章 |
0 |
はい |
実務経験 |
|
インタビュー_お知らせ |
文章 |
0 |
はい |
インタビュー |
|
お勧め |
整数 |
11 |
いいえ |
インテリジェントな推奨事項 |
|
作成時間 |
日付時刻 |
0 |
いいえ |
作成時間 |
|
更新時間 |
タイムスタンプ |
0 |
いいえ |
更新時間 |
|
賞罰情報 |
|||||
フィールド名 |
タイプ |
長さ |
nullではない |
主キー |
フィールドの説明 |
reward_and_punishment_information_id |
int |
11 |
否 |
主键 |
奖惩信息ID |
full_name |
varchar |
64 |
是 |
姓名 |
|
gender |
varchar |
64 |
是 |
性别 |
|
age |
varchar |
64 |
是 |
年龄 |
|
id |
varchar |
64 |
是 |
身份证 |
|
department_name |
varchar |
64 |
是 |
部门名 |
|
position_name |
varchar |
64 |
是 |
职位名 |
|
types_of_rewards_and_punishments |
varchar |
64 |
是 |
奖惩类型 |
|
reward_and_punishment_time |
date |
0 |
是 |
奖惩时间 |
|
staff |
int |
11 |
是 |
员工 |
|
details_of_rewards_and_punishments |
text |
0 |
是 |
奖惩详情 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
salary_information |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
salary_information_id |
int |
11 |
否 |
主键 |
薪资信息ID |
full_name |
varchar |
64 |
是 |
姓名 |
|
gender |
varchar |
64 |
是 |
性别 |
|
age |
varchar |
64 |
是 |
年龄 |
|
id |
varchar |
64 |
是 |
身份证 |
|
department_name |
varchar |
64 |
是 |
部门名 |
|
position_name |
varchar |
64 |
是 |
职位名 |
|
base_pay |
int |
11 |
是 |
基本工资 |
|
deduction_amount |
int |
11 |
是 |
扣款金额 |
|
reward_amount |
int |
11 |
是 |
奖励金额 |
|
total_salary |
varchar |
64 |
是 |
总工资 |
|
salary_month |
varchar |
64 |
是 |
工资月份 |
|
staff |
int |
11 |
是 |
员工 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
training_information |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
training_information_id |
int |
11 |
否 |
主键 |
培训信息ID |
full_name |
varchar |
64 |
是 |
姓名 |
|
gender |
varchar |
64 |
是 |
性别 |
|
id |
varchar |
64 |
是 |
身份证 |
|
department_name |
varchar |
64 |
是 |
部门名 |
|
position_name |
varchar |
64 |
是 |
职位名 |
|
training_time |
date |
0 |
是 |
培训时间 |
|
training_location |
varchar |
64 |
是 |
培训地点 |
|
staff |
int |
11 |
是 |
员工 |
|
training_content |
text |
0 |
是 |
培训内容 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
user_registration |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
user_registration_id |
int |
11 |
否 |
主键 |
用户注册ID |
gender |
varchar |
64 |
是 |
性别 |
|
full_name |
varchar |
64 |
是 |
姓名 |
|
examine_state |
varchar |
16 |
否 |
审核状态 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
user_id |
int |
11 |
否 |
用户ID |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。
登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,然后在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;
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, "账号或密码不正确");
}
}
系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台。
如下图所示为系统的首页界面。
图5-3系统首页界面
其中载入前台页面的主要代码如下。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
Query select = service.select(service.readQuery(request), service.readConfig(request));
List resultList = select.getResultList();
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
public Query 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 runEntitySql(sql.toString());
}
管理员登录进入企业人力资源管理系统可以查看管理员:首页、站点管理(轮播图、公告栏)用户管理(管理员、用户注册、员工用户)内容管理(新闻列表、新闻分类列表)更多管理(部门信息、职务信息、招聘信息、简历管理、录用信息、培训信息、考勤打卡、打卡记录、奖惩信息、薪资信息)管理等内容,如图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员工功能界面图
打卡记录管理,在打卡记录页面查看打卡类型、打卡日期、打卡时间、姓名、员工等内容操作。如图5-11所示。
图5-11打卡记录管理界面图
在对该系统进行完详细设计和编码之后,就要对企业人力资源管理系统安全方案的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。
在软件的测试过程中,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业务逻辑上是否与真实的业务逻辑相对应,及时发现代码上或逻辑上的缺陷,以此来来完善系统,提高软件产品的质量,使软件具有良好的用户体验。
登录测试用例表如下所示。
表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,LantunParadhitaDewanti.SelectivityofFishingGearforScomberomorusguttatus(Bloch&Schneider,1801)CommoditiesinPangandaranFishingGround,WestJava[J].AsianJournalofFisheriesandAquaticResearch,2020.
[20]ZhongXiangfu、PlaAlbert、RaynerSimon.Jasmine:a Javapipeline for isomiRcharacterization in miRNA-Seqdata[J].バイオインフォマティクス、2020、36(6)。
ありがとう
設計が完了すると、大学生活は終わりを迎えます。大学生活は私にとって最も大切にしている時間であり、大学生活で多くのことを学び、成長することができ、そのすべての思い出が私の心に刻まれています。一緒に学び成長してきた生徒たち、成長過程を教えてくれた先生方のおかげで、御社に心より感謝いたします。
まずは先生に感謝したいと思いますが、デザインの完成には先生の一連のご指導があってこそです。卒業制作の際には、先生が的確なアドバイスをたくさんして下さり、先生の丁寧な仕事姿勢のおかげで、私のデザインが無事に完成することができました。
最後に、大学生活中に私にたくさんの知識を教えていただき、問題に遭遇したときの対処法や解決法を教えてくださった先生方に感謝いたします。ご支援とご協力に感謝いたします。
いいね+お気に入り+フォロー→プライベートメッセージでソースコードとデータベースを受け取ります