Springbootをベースとしたキャンパス疫病予防・制御管理システムプラットフォームの導入

著者のホームページ:千羽鶴のプログラミング

著者について: Java、フロントエンド、Python は長年にわたって開発されており、シニア エンジニア、プロジェクト マネージャー、アーキテクトとして働いてきました。

主な内容:Javaプロジェクト開発、Pythonプロジェクト開発、大学データ・AIプロジェクト開発、MCUプロジェクト設計、インタビュー技術整理、最新技術共有

お気に入り、いいね、迷わず作者フォローすると良いです

記事の最後にあるソースコードを入手してください

品番:BS-GX-056

序文:

ここ数年、新型コロナウイルスの世界的な蔓延に伴い、各国も感染症対策に対応した情報システムをいくつか開発してきましたが、この記事では主に新型コロナウイルス感染症流行時のそれについて紹介します。手動による情報交換と管理の限界を打破し、最前線の職員の負担を軽減するために、感染者や濃厚接触者の情報を提供するために、新型コロナウイルス感染症流行管理情報システムが緊急に開発されました。検査室などの流行予防と制御のコアデータです。サンプルの収集とテスト結果、サイトの消毒など、関連する新機能、管理、クエリおよびその他の機能を提供し、さまざまなシステムのユーザー間のデータの流れをサポートし、これに基づいて統計分析とレポートを提供します。このようなシステムを開発・運用することで、スタッフの情報共有・取得が非常に容易になり、迅速な対応力の向上に大きく役立っています。

ただし、この情報システムの研究開発は普遍的なものではありません。たとえば、キャンパスの感染症の予防と制御の過程では、さまざまなグループやビジネスのニーズに直面します。キャンパスの場合、それは主に教師と学生の管理に関するものです。個人の健康報告、早期発見、早期隔離、早期治療を通じて、ウイルスとの接触と感染の可能性を減らし、ウイルス感染の被害を最小限に抑える。したがって、キャンパス感染症の予防と制御をテーマとしたこのテーマ研究は、実践的な意義が強い。流行はすでに終息しましたが、予防の手段と心理を残すことはできません。事前に計画を立てる人は常に天からの恩恵を受けます。人類が自然界を理解するにはまだまだ未知の領域が多く、今回の疫病を通じて人類は警戒心を強めており、次に同じ失敗を繰り返さないためには、事前にさまざまな準備をしておく必要がある。

全国にはあらゆる種類の学校が無数に存在し、学生数の多さにより管理が複雑化しているが、情報技術の活用により情報の効率的な収集・処理が可能となり、キャンパス運営における人手不足の問題が解決される。 。さらに、情報化されたデータの収集と分類により、履歴データのクエリとバックトラックが非常に便利になり、情報の追跡とレポートが容易になります。このプロジェクトは主に、生徒や教師などの基礎データの管理、生徒の下校・休暇申請や健康報告の審査・管理、感染症の動態やニュースの広報などを実現します。情報。

システムの実装は主に JAVA 開発言語プラットフォームに基づいて開発および実装されており、Spring、Springmvc、Mybatis およびその他の関連フレームワークを使用してシステム サービス インターフェイスとビジネス ロジックの処理を完了し、フロントエンド ページをHtml、Css、JavaScript、Vue およびその他のフロントエンド テクノロジ。開発とデータ表示、フロント エンドとバック エンドは非同期リクエストを通じて対話し、データのカプセル化には JSON が使用されます。システム開発のプロセスは主に、初期のシステム構造の構築と、フロントエンドとバックエンドのデータ処理の組み合わせであり、システムの全体構造が構築されると、各ビジネスモジュールの開発は比較的簡単になります。 。

1. 環境紹介

ロケール: Java: jdk1.8

データベース: MySQL: mysql5.7

アプリケーションサーバー: Tomcat: tomcat8.5.31

開発ツール: IDEA または eclipse

開発技術:Springboot+Mybatis+Vue+ElementUI

2. プロジェクト紹介

需要分析の結果、本システムにはシステム管理者、教師、学生の 3 種類のユーザーロールがあり、ロールごとにシステム機能の操作権限や業務要件が異なりますので、システム構成図で説明します。さまざまなユーザー役割に対応する機能モジュールを表示します。

   (1) 管理者機能:プラットフォームの管理者は、主に管理者の個人情報管理、クラス管理、教師管理、生徒管理、健康チェックインデータ管理、退学監査、疫病状況など、システムのいくつかの基本データを管理できます。ダイナミクス、疫病ニュース、疫病予防対策管理およびその他のモジュール。

図2-1 管理者機能の構成図

  (2) 教師の役割機能: 主に個人情報管理、生徒管理、退学審査、流行ニュース、流行動向、生徒の健康チェックインなどの機能モジュールが含まれます。

図2-2 教師機能の構成図

   (3)学生役割モジュール:主に学生の個人情報の管理、登録とログイン、退学申請、流行状況の確認、流行ニュース、オンライン健康チェックインなどの機能が含まれます。

図 2-3 スチューデント関数の構造図

三、システム表示

4.1管理者バックグラウンド管理機能モジュールの表示

4.1.1流行の動的管理モジュール

管理者はシステムにログインした後、流行動態情報の追加、流行動態情報の変更、流行動態情報のクエリ、流行動態情報の削除、その他の操作を含む流行動態情報を保守できます。疫病動態管理は主に学校の現在の疫病制御情報の動態情報を管理します。管理者はバックグラウンドでログインして流行動態管理操作インターフェースに入ります。このモジュールでは、流行動態情報を追加、変更、削除でき、また、管理操作の名前などに応じて問い合わせられます。インターフェイスの表示を次の図 4-1 に示します。

図4-1 疫病動態情報管理運用の実現インターフェース

4.1.2防疫対策管理モジュール

防疫対策管理は主に、流行期に学校が採用する防疫対策に関する関連情報管理業務を実施します。インターフェースの表示を以下の図 4-2 に示します。

図 4-2 防疫対策管理操作画面

4.1.3疫病知識管理モジュール

疫病知識管理は主に学校が発表する疫病関連知識情報の関連情報管理を行う。インターフェースの表示を以下の図 4-3 に示します。

図 4-3 疫病知識管理の操作インターフェイス

4.1.4学校通知管理モジュール

学内通知管理は主に学校自体の関連情報を管理します. 管理者はバックグラウンドでログインして部門情報管理操作画面に入ります. このモジュールでは、ニュース通知情報の追加、変更、削除、およびその他の管理操作を行うことができます名前に従ってクエリを実行できます。インターフェイスの表示を次の図 4-4 に示します。

図 4-4 学内通知管理画面

4.1.5教師情報管理モジュール

教師情報管理モジュールには、主に学校内の教師情報の管理が含まれます。システム管理者は、システムにログインした後、教師情報管理インターフェイスにアクセスして、主に教師の追加、変更、削除、クエリなどの関連管理操作を実行することができます。このページでは、主に POI コンポーネントを使用して教師の情報を EXCEL フォームにエクスポートすることにより、データをインポートおよびエクスポートすることもできます。バックグラウンド教師管理モジュールの関連する管理操作インターフェイスを以下の図 4-5 に示します。

図 4-5 教師管理操作インターフェース

4.1.6学生情報管理モジュール

学生情報リセット管理モジュールは、主に該当する学校の学生情報を管理します。学生に基づいた情報管理操作に加えて、このページ上のデータをインポートおよびエクスポートすることもできます。学生情報は主にPOIを通じて実現されます。 EXCEL フォームをエクスポートすると、学生管理モジュールの関連する管理操作インターフェイスが次の図 4-6 に示されます。

図 4-6 学生情報管理の操作画面

4.1.7教員の健康診断記録管理

管理者はバックグラウンドで教師のオンライン健康チェックイン情報を確認し、必要に応じて当該教師のチェックイン情報を防疫室にアップロードすることができる。ユーザー ログイン インターフェイスを以下の図 4-7 に示します。

図 4-7 教師パンチカード記録操作インターフェース

4.1.8学生の健康診断記録の管理

教員はシステムにログインすると、生徒健康診断機能モジュールで全生徒の現在の健康診断情報一覧を閲覧したり、異常があった生徒の記録を報告したりすることができます。操作インターフェイスを以下の図 4-8 に示します。

図 4-8 学生の健康チェックイン記録インターフェイス

4.1.9診断リスト情報管理運用

管理者はシステムにログイン後、診断された生徒や教員を報告することができ、報告された生​​徒や教員は確認済みリストに反映され、条件の組み合わせに応じて確認することができます。ツールの操作インターフェイスを以下の図 4-9 に示します。

図 4-9 診断リストの機能インターフェース図

4.1.10退学届リスト

システムに入ると、管理者は退学申請モジュールで退学申請を行った生徒の情報を確認することができ、退学審査は教師に委任され、管理者が主に関連情報の確認を行うシステムです。操作インターフェイスを図 4-10 に示します。

図 4-10 退学申請リストの機能インターフェース図

4.2フロントエンドユーザ機能モジュールの表示

4.2.1ユーザーログイン機能

学生と教師は、バックグラウンド管理者によって追加された後、システムのフロントエンド ページにログインし、ログイン時に自分の ID 情報を選択できます。ユーザー ログイン インターフェイスを次の図 4-11 に示します。

図 4-11 ユーザーログインの操作画面

4.2.2システムのホームページ

学生や教員はシステムにログインすると自動的にシステムのホームページにジャンプし、メニュー分類に応じた情報を閲覧することができ、主に関連するカルーセルやニュース情報が表示されるホームページのレイアウトとなっています。操作インターフェイスを以下の図 4-12 に示します。

図 4-12 システムホームページ機能のインターフェース

4.2.3流行動態情報の閲覧操作

システムに入った後、学生と教師は流行動態モジュールをクリックして、バックグラウンドで公開される流行動態リストと詳細情報を表示できます。具体的な操作インターフェイスを以下の図 4-13 および 4-14 に示します。

図 4-13 流行ダイナミックリストの機能インターフェース図

図 4-14 流行の動的な詳細の機能インターフェース図

4.2.4防疫対策画面の操作

システムに入った後、学生と教師は疫病対策モジュールをクリックして、バックグラウンドでリリースされる疫病対策のリストと詳細情報を表示できます。具体的な操作インターフェイスを以下の図 4-15 に示します。

図 4-15 防疫対策システムの機能インターフェース図

4.2.5疫病知識ビューの操作

システムに入った後、生徒と教師は疫病知識モジュールをクリックして、バックグラウンドで公開される疫病知識リストと詳細情報を表示できます。具体的な操作インターフェイスを以下の図 4-16 に示します。

図 4-16 疫病知識システムの機能インターフェース図

4.2.6校内のお知らせ情報を確認する

学校からのお知らせは、学校だより、お知らせ、メディアキャンパスの 3 つのカテゴリに分かれています。システムに入ると、生徒と教師はさまざまなモジュールをクリックして、バックグラウンドで公開される学校通知情報のリストと詳細情報を表示できます。具体的な操作インターフェイスを以下の図 4-17 に示します。

図 4-17 学校連絡表システムの機能インターフェース図

4.2.7個人情報の保守

生徒と教師は感染症管理システムにログインした後、パーソナル センターで自分の情報を変更できます。具体的な操作インターフェイスを以下の図 4-18 に示します。

図4-18 個人情報保守機能のインターフェース図

4.2.8ヘルスチェックイン

学生と教師は感染症管理システムにログインした後、パーソナル センターで健康管理を選択し、オンラインで個人の健康情報を入力してチェックインできます。具体的な操作インターフェイスを以下の図 4-19 に示します。

図4-19 個人情報保守機能のインターフェース図

4.2.9退学届

感染症管理システムにログインした後、生徒はパーソナルセンターで退学申請を選択し、オンラインで退学申請の関連情報を入力し、教師の審査を待ち、申請記録と審査結果を閲覧できます。私のアプリケーション。具体的な操作インターフェイスを以下の図 4-20 および図 4-21 に示します。

図4-20 退学申請の機能インターフェース図

図 4-21 私のアプリケーション関数のインターフェース図

4.2.10退学審査

感染症管理システムにログインした後、教師は学校申請管理をパーソナル センターに任せることを選択し、生徒の学校休暇申請情報をオンラインで確認することができます。具体的な操作インターフェイスを以下の図 4-22 に示します。

図 4-22 退学願審査の機能インタフェース図

4番目、コアコード表示

package com.zhiku.yiqing.web;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhiku.yiqing.common.R;
import com.zhiku.yiqing.pojo.*;
import com.zhiku.yiqing.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("/menhu")
public class MenHuController {
    @Autowired
    private YiqingNewsService yiqingNewsService;
    @Autowired
    private NewsService newsService;
    @Autowired
    private DynamicService dynamicService;
    @Autowired
    private SchoolGeneralService schoolGeneralService;
    @Autowired
    private FankuiService fankuiService;
    @Autowired
    private ClaService claService;

    @GetMapping("/queryAllDynamic/{type}")
    public R queryAllDynamic(@PathVariable("type") Integer type){
        List<Dynamic> dynamics =  dynamicService.queryDynamicByType(type);
        return R.success(dynamics);
    }

    @GetMapping("/queryYiqingNewsById/{id}")
    public R queryYiqingNewsById(@PathVariable("id") Integer id){
        YiqingNews yiqingNews = yiqingNewsService.queryYiQingNewsById(id);
        return R.success(yiqingNews);
    }
    @GetMapping("/queryDynamicById/{id}")
    public R queryDynamicById(@PathVariable("id") Integer id){
        Dynamic dynamic = dynamicService.queryDynamicById(id);
        return R.success(dynamic);
    }

    @GetMapping("/querySchoolGeneralById/{id}")
    public R querySchoolGeneralById(@PathVariable("id") Integer id){
        SchoolGeneral schoolGeneral = schoolGeneralService.querySchoolGeneralById(id);
        return R.success(schoolGeneral);
    }
    /**
     * 查询所有的防疫措施
     * @return
     */
    @GetMapping("/queryAllSchoolGenerals")
    public R queryAllSchoolGenerals(){
       List<SchoolGeneral> schoolGenerals =  schoolGeneralService.menHuQueryAllSchoolGeneral();
        return R.success(schoolGenerals);
    }


    /**
     * 查询所有的疫情新闻
     * @return
     */
    @GetMapping("/queryAllYiqingNews")
    public R queryAllYiqingNews(){
        List<YiqingNews> yiqingNews =  yiqingNewsService.menhuQueryAllYiqingNews();
        return R.success(yiqingNews);
    }

    /**
     * 查询所有的疫情知识
     * @return
     */
    @GetMapping("/queryAllNews")
    public R queryAllNews(){
       List<News> news =  newsService.menhuQueryAllNews();
        return R.success(news);
    }

    /**
     * 查询单个的疫情知识
     * @return
     */
    @GetMapping("/queryNewsById/{id}")
    public R queryNewsById(@PathVariable("id") Integer id){
        News news =  newsService.queryNewsById(id);
        return R.success(news);
    }

    /**
     * 填写个人反馈
     * @return
     */
    @PostMapping("/addFankui")
    public R addFankui(@RequestBody Fankui fankui){
        fankui.setCreatetime(new Date());
        fankuiService.save(fankui);
        return R.success();
    }

    /**
     * 查询所有的个人反馈--根据本人编号查询
     * @return
     */
    @GetMapping("/queryAllFankui/{snumber}")
    public R queryAllFankui(@PathVariable("snumber") String snumber){
        QueryWrapper<Fankui> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("snumber",snumber);
        List<Fankui> list = fankuiService.list(queryWrapper);
        return R.success(list);
    }

    /**
     * 删除个人反馈
     * @return
     */
    @DeleteMapping("/delFankui/{id}")
    public R delFankui(@PathVariable("id") Integer id){
        fankuiService.removeById(id);
        return R.success();
    }

    /**
     * 查询所有的个人反馈
     * @return
     */
    @GetMapping("/queryFankuiList/{page}/{pagesize}")
    public R queryFankuiList(@PathVariable("page") Integer page,@PathVariable("pagesize") Integer pagesize){
        Page<Fankui> pages = new Page<>(page, pagesize);
        Page<Fankui> page1 = fankuiService.page(pages);
        return R.success(page1);
    }

    /**
     * 删除个人反馈
     * @return
     */
    @DeleteMapping("/batchDelFankuiById/{ids}")
    public R batchDelFankuiById(@PathVariable("ids") Integer[] ids){

        fankuiService.removeBatchByIds(Arrays.asList(ids));
        return R.success();
    }

    /**
     * 班级添加
     * @return
     */
    @PostMapping("/addCla")
    public R addCla(@RequestBody Cla cla){
        claService.save(cla);
        return R.success();
    }
    /**
     * 查询所有的班级
     * @return
     */
    @GetMapping("/queryClaList")
    public R queryClaList(){
        List<Cla> list = claService.list();
        return R.success(list);
    }

    /**
     * 查询所有的班级
     * @return
     */
    @GetMapping("/queryAllCla/{page}/{pagesize}")
    public R queryAllCla(@PathVariable("page") Integer page,@PathVariable("pagesize") Integer pagesize){
        Page<Cla> pages = new Page<>(page, pagesize);
        Page<Cla> page1 = claService.page(pages);
        return R.success(page1);
    }
    /**
     * 删除班级
     * @return
     */
    @DeleteMapping("/delCla/{id}")
    public R delCla(@PathVariable("id") Integer id){
        try {
            claService.removeById(id);
            return R.success();
        }catch (Exception e){
            return R.failure();
        }
    }

    /**
     * 查询班级详情
     * @return
     */
    @GetMapping("/queryClaById/{id}")
    public R queryClaById(@PathVariable("id") Integer id){
            Cla cla = claService.getById(id);
            return R.success(cla);
    }

    /**
     * 更新班级详情
     * @return
     */
    @PutMapping("/updateClaById")
    public R updateClaById(@RequestBody Cla cla){
        claService.updateById(cla);
        return R.success();
    }
}
package com.zhiku.yiqing.web;

import com.zhiku.yiqing.common.R;
import com.zhiku.yiqing.pojo.*;
import com.zhiku.yiqing.service.*;
import com.zhiku.yiqing.vo.StudentUpdatePasswordVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 学生个人中心
 */
@RestController
@RequestMapping("/mstudent")
public class MenHuStudentController {

    @Autowired
    StudentService studentService;

    @Autowired
    LeaveManagementService leaveManagementService;

    @Autowired
    ReturnManagementService returnManagementService;

    @Autowired
    TeacherService teacherService;

    @Autowired
    HealthService healthService;


    /**
     * 删除个人离校申请
     * @param id
     * @return
     */
    @DeleteMapping("/delStudentLeaveById/{id}")
    public R delStudentLeaveById(@PathVariable("id") String id){
        leaveManagementService.delLeaveById(id);
        return R.success();
    }

    /**
     * 提交离校申请
     * @param leaveManagement
     * @return
     */
    @PostMapping("/commitStudentLeave")
    public R commitStudentLeave(@RequestBody LeaveManagement leaveManagement){
        // System.out.println(leaveManagement+"--------------------------");
        leaveManagementService.commitStudentLeave(leaveManagement);
        return R.success();
    }

    /**
     * 查询所有离校申请
     * @param snumber
     * @return
     */
    @GetMapping("/queryAllMyLeave/{snumber}")
    public R queryAllMyLeave( @PathVariable("snumber") String snumber){
        System.out.println(snumber+"--------------------");
        List<LeaveManagement> leaveManagements = leaveManagementService.queryAllMyLeave(snumber);

        return R.success(leaveManagements);
    }

    /**
     * 删除个人离归校申请
     * @param id
     * @return
     */
    @DeleteMapping("/delStudentReturnById/{id}")
    public R delStudentReturnById(@PathVariable("id") String id){
        returnManagementService.delReturnById(id);
        return R.success();
    }

    /**
     * 提交归校申请
     * @param returnManagement
     * @return
     */
    @PostMapping("/commitStudentReturn")
    public R commitStudentReturn(@RequestBody ReturnManagement returnManagement){
        // System.out.println(leaveManagement+"--------------------------");
        returnManagementService.commitStudentReturn(returnManagement);
        return R.success();
    }

    /**
     * 查询所有归校申请
     * @param snumber
     * @return
     */
    @GetMapping("/queryAllMyReturn/{snumber}")
    public R queryAllMyReturn( @PathVariable("snumber") String snumber){
        System.out.println(snumber+"--------------------");
        List<ReturnManagement> returnManagements = returnManagementService.queryAllMyReturn(snumber);

        return R.success(returnManagements);
    }


    @PostMapping("/commitStudentHealth")
    public R commitStudentHealth(@RequestBody Health health){
        // System.out.println(health);
        healthService.commitStudentHealth(health);
        return R.success();
    }

    @GetMapping("/queryAllTeacher")
    public R queryAllTeacher(){
        List<Teacher> teacherList = teacherService.menhuQueryAllTeacher();
        return R.success(teacherList);
    }

    @GetMapping("/getStudentInfoById/{id}")
    public R getStudentInfoById(@PathVariable("id") Integer id){
        Student student = studentService.getStudentInfoById(id);
        return R.success(student);
    }

    @PutMapping("/updateStudentInfoById")
    public R updateStudentInfoById(@RequestBody Student student){
        System.out.println(student+"--------------------");
        studentService.updateStudentInfoById(student);
        return R.success();
    }

    @PutMapping("/updateStudentPasswordById")
    public R updateStudentPasswordById(@RequestBody StudentUpdatePasswordVo student){
        System.out.println(student+"--------------------");
        boolean isExist = studentService.findUserPasswordById(student.getId(), student.getPassword());
        // 代表存在
        if (!isExist) {
            return R.failure().setMessage("原始密码输入错误");
        }

        studentService.updatePasswordById(student);

        return R.success();
    }

}

 

V. プロジェクトの概要

今回開発・設計した学内防疫管理システムは、主にWEB3.0という新時代を迎えた現在のインターネット時代に即し、新技術と新たな発想を用いて学校の情報化構築に貢献するものである。システムの全体的な機能は、主に 3 つのユーザー役割の業務運営機能を中心に、フロントエンド ユーザー操作インターフェイスとバックグラウンド管理インターフェイスを含む、当初のミッション ステートメントの要件に従って関連するコア ビジネス機能を実現しています。ユーザー、教師、管理者 以前の需要分析に基づいて、生徒管理、教師管理、健康チェックイン、退学監査などのビジネス モジュールの開発とテストが完了したことを実現しました。

おすすめ

転載: blog.csdn.net/BS009/article/details/132098587