Implementation of vaccination schedule management system based on Springboot

Author Homepage: Programming Compass

 Introduction: high-quality creators in the Java field, CSDN blog experts Java projects, resume templates, learning materials, interview question bank, technical mutual assistance

Get the source code at the end of the article

Item number: BS-XX-105

Development technology: Springboot+springmvc+mybatis+layui

Development tools: idea or eclipse

Database: mysql5.7

Development language: java

JDK version: jdk1.8

This system mainly realizes the functions of personal vaccination management, itinerary management, medical history management, risk area management, nucleic acid test report result reporting, and epidemic news management. The system is divided into two roles: administrator and ordinary user. Administrators can manage all relevant information, while ordinary users can only manage their own vaccinations and other information, and can view epidemic areas and epidemic prevention information released by administrators.

The table structure involved:

The specific functions are shown as follows:

User registration:

user login

Vaccination Administration

case history management

Nucleic acid test report

Itinerary management

Epidemic area management

Epidemic prevention knowledge management

personal data management

System user management

The core code of the system is as follows:

package com.vaccination.controller;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vaccination.entity.CaseHistory;
import com.vaccination.entity.InoculationRecord;
import com.vaccination.entity.User;
import com.vaccination.service.CaseHistoryService;
import com.vaccination.service.UserService;
import com.vaccination.util.PageRequest;
import com.vaccination.util.PageResponse;
import com.vaccination.util.Result;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

@RestController
public class CaseHistoryController {

    @Autowired
    private CaseHistoryService caseHistoryService;
    @Autowired
    private UserService userService;

    @PostMapping("/listCaseHistory")
    public PageResponse listCaseHistory(HttpServletRequest request, PageRequest page) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            PageResponse pageResponse = new PageResponse();
            pageResponse.setMsg("请登陆");
            return pageResponse;
        }
        if (user.getRole() == 2) {
            user.setId(-1L);
        }
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        IPage<CaseHistory> iPage = caseHistoryService.listCaseHistory(new Page<>(page.getPage(), page.getLimit()), user.getId());
        List<CaseHistory> records = iPage.getRecords();
        records.forEach(item -> {
            if (StringUtils.isBlank(item.getUsername()) && item.getUserId() != null) {
                User byId = userService.getById(item.getUserId());
                if (byId != null) {
                    item.setUsername(byId.getName());
                    item.setUserIdentity(byId.getIdentityNum());
                }
            }
            if (item.getHappenTime() != null) {
                item.setHappenTimeStr(dateFormat.format(item.getHappenTime()));
            }
        });
        return new PageResponse("0", "请求成功", iPage.getTotal(), records);
    }

    @GetMapping("/delCaseHistory")
    public Result delCaseHistory(Long id) {
        caseHistoryService.removeById(id);
        return Result.success("删除成功");
    }

    @PostMapping("/saveCaseHistory")
    public Result saveInoculation(CaseHistory record, HttpServletRequest request) throws ParseException {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            return Result.error("请登陆");
        }
        record.setUserId(user.getId());
        if (StringUtils.isNoneBlank(record.getUsername())){
            User byUsername = userService.getByUsername(record.getUsername());
            if(byUsername == null) {
                User newUser = new User();
                newUser.setUsername(record.getUsername());
                newUser.setName(record.getUsername());
                newUser.setPassword("123456");
                newUser.setRole(1);
                newUser.setStatus(1);
                userService.save(newUser);
                byUsername = newUser;
            }
            record.setUserId(byUsername.getId());
        }
        if (StringUtils.isNoneBlank(record.getHappenTimeStr())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setHappenTime(dateFormat.parse(record.getHappenTimeStr()));
        }
        caseHistoryService.save(record);
        return Result.success("添加成功");
    }

    @PostMapping("/updateCaseHistory")
    public Result updateInoculation(CaseHistory record) throws ParseException {
        if (record.getId() == null) {
            return Result.error("更新失败");
        }
        if (StringUtils.isNoneBlank(record.getHappenTimeStr())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setHappenTime(dateFormat.parse(record.getHappenTimeStr()));
        }else {
            record.setHappenTime(null);
        }
        caseHistoryService.updateById(record);
        return Result.success("更新成功");
    }
}

package com.vaccination.controller;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vaccination.entity.InoculationRecord;
import com.vaccination.entity.User;
import com.vaccination.service.InoculationRecordService;
import com.vaccination.service.UserService;
import com.vaccination.util.PageRequest;
import com.vaccination.util.PageResponse;
import com.vaccination.util.Result;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

@RestController
public class InoculationController {

    @Autowired
    private InoculationRecordService inoculationRecordService;

    @Autowired
    private UserService userService;

    @PostMapping("/listInoculations")
    public PageResponse listInoculations(HttpServletRequest request, PageRequest page) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            PageResponse pageResponse = new PageResponse();
            pageResponse.setMsg("请登陆");
            return pageResponse;
        }
        if (user.getRole() == 2) {
            user.setId(-1L);
        }
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        IPage<InoculationRecord> iPage = inoculationRecordService.listInoculations(new Page<>(page.getPage(), page.getLimit()), user.getId());
        List<InoculationRecord> records = iPage.getRecords();
        records.forEach(item -> {
            if (StringUtils.isBlank(item.getUsername()) && item.getUserId() != null) {
                User byId = userService.getById(item.getUserId());
                if (byId != null) {
                    item.setUsername(byId.getName());
                    item.setUserIdentity(byId.getIdentityNum());
                }
            }
            if (item.getInoculationTimeOne() != null) {
                item.setInoculationTimeStrOne(dateFormat.format(item.getInoculationTimeOne()));
            }
            if (item.getInoculationTimeTwo() != null) {
                item.setInoculationTimeStrTwo(dateFormat.format(item.getInoculationTimeTwo()));
            }
            if (item.getInoculationTimeThree() != null) {
                item.setInoculationTimeStrThree(dateFormat.format(item.getInoculationTimeThree()));
            }
        });
        return new PageResponse("0", "请求成功", iPage.getTotal(), records);
    }

    @GetMapping("/delInoculation")
    public Result delInoculation(Long id) {
        inoculationRecordService.removeById(id);
        return Result.success("删除成功");
    }

    @PostMapping("/saveInoculation")
    public Result saveInoculation(InoculationRecord record, HttpServletRequest request) throws ParseException {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            return Result.error("请登陆");
        }
        if(record.getStatusThree() == 1 && (record.getStatusTwo() == 2 || record.getStatusOne() == 2)) {
            return Result.error("请先接种第一二针");
        }

        if(record.getStatusTwo() == 1 && record.getStatusTwo() == 2) {
            return Result.error("请先接种第一针");
        }
        record.setUserId(user.getId());
        if (StringUtils.isNoneBlank(record.getUsername())){
            User byUsername = userService.getByUsername(record.getUsername());
            if(byUsername == null) {
                User newUser = new User();
                newUser.setUsername(record.getUsername());
                newUser.setName(record.getUsername());
                newUser.setPassword("123456");
                newUser.setRole(1);
                newUser.setStatus(1);
                userService.save(newUser);
                byUsername = newUser;
            }
            record.setUserId(byUsername.getId());
        }
        if (StringUtils.isNoneBlank(record.getInoculationTimeStrOne())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setInoculationTimeOne(dateFormat.parse(record.getInoculationTimeStrOne()));
        }
        if (StringUtils.isNoneBlank(record.getInoculationTimeStrTwo())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setInoculationTimeTwo(dateFormat.parse(record.getInoculationTimeStrTwo()));
        }
        if (StringUtils.isNoneBlank(record.getInoculationTimeStrThree())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setInoculationTimeThree(dateFormat.parse(record.getInoculationTimeStrThree()));
        }
        inoculationRecordService.save(record);
        return Result.success("添加成功");
    }

    @PostMapping("/updateInoculation")
    public Result updateInoculation(InoculationRecord record) throws ParseException {
        if (record.getId() == null) {
            return Result.error("更新失败");
        }

        if(record.getStatusThree() == 1 && (record.getStatusTwo() == 2 || record.getStatusOne() == 2)) {
            return Result.error("请先接种第一二针");
        }

        if(record.getStatusTwo() == 1 && record.getStatusTwo() == 2) {
            return Result.error("请先接种第一针");
        }

        if (StringUtils.isNoneBlank(record.getInoculationTimeStrOne())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setInoculationTimeOne(dateFormat.parse(record.getInoculationTimeStrOne()));
        }
        if (StringUtils.isNoneBlank(record.getInoculationTimeStrTwo())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setInoculationTimeTwo(dateFormat.parse(record.getInoculationTimeStrTwo()));
        }
        if (StringUtils.isNoneBlank(record.getInoculationTimeStrThree())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            record.setInoculationTimeThree(dateFormat.parse(record.getInoculationTimeStrThree()));
        }
        inoculationRecordService.updateById(record);
        return Result.success("更新成功");
    }
}

package com.vaccination.controller;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vaccination.entity.EpidemicPreventionKnowledge;
import com.vaccination.entity.User;
import com.vaccination.service.EpidemicPreventionKnowledgeService;
import com.vaccination.service.UserService;
import com.vaccination.util.PageRequest;
import com.vaccination.util.PageResponse;
import com.vaccination.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@RestController
public class KnowledgeController {

    @Autowired
    private EpidemicPreventionKnowledgeService epidemicPreventionKnowledgeService;
    
    @Autowired
    private UserService userService;

    @PostMapping("/listKnowledge")
    public PageResponse listKnowledge(HttpServletRequest request, PageRequest page) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            PageResponse pageResponse = new PageResponse();
            pageResponse.setMsg("请登陆");
            return pageResponse;
        }
        if (user.getRole() == 2) {
            user.setId(-1L);
        }
        IPage<EpidemicPreventionKnowledge> iPage = epidemicPreventionKnowledgeService.listKnowledge(new Page<>(page.getPage(), page.getLimit()));
        List<EpidemicPreventionKnowledge> records = iPage.getRecords();
        records.forEach(item-> {
            if (item.getSendUserId() == null) {
                return;
            }
            User byId = userService.getById(item.getSendUserId());
            if (byId == null) {
                return;
            }
            item.setUsername(byId.getName());
        });
        return new PageResponse("0", "请求成功", iPage.getTotal(), records);
    }

    @GetMapping("/delKnowledge")
    public Result delCaseHistory(Long id, HttpServletRequest request) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            return Result.error("请登陆");
        }
        if (user.getRole() == 1) {
            return Result.error("非管理员用户,删除失败");
        }
        epidemicPreventionKnowledgeService.removeById(id);
        return Result.success("删除成功");
    }

    @PostMapping("/saveKnowledge")
    public Result saveInoculation(EpidemicPreventionKnowledge record, HttpServletRequest request) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            return Result.error("请登陆");
        }
        if (user.getRole() == 1) {
            return Result.error("非管理员用户,添加失败");
        }
        record.setSendUserId(user.getId());
        epidemicPreventionKnowledgeService.save(record);
        return Result.success("添加成功");
    }

    @PostMapping("/updateKnowledge")
    public Result updateInoculation(EpidemicPreventionKnowledge record, HttpServletRequest request) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null) {
            return Result.error("请登陆");
        }
        if (user.getRole() == 1) {
            return Result.error("非管理员用户,修改失败");
        }
        if (record.getId() == null) {
            return Result.error("更新失败");
        }
        epidemicPreventionKnowledgeService.updateById(record);
        return Result.success("更新成功");
    }
}

package com.vaccination.controller;

import com.alibaba.fastjson.JSONObject;
import com.sun.org.apache.xpath.internal.operations.Mod;
import com.vaccination.entity.EpidemicPreventionKnowledge;
import com.vaccination.entity.User;
import com.vaccination.service.EpidemicPreventionKnowledgeService;
import com.vaccination.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.time.OffsetDateTime;
import java.util.List;

@Controller
public class PageController {

    @Autowired
    EpidemicPreventionKnowledgeService epidemicPreventionKnowledgeService;
    @Autowired
    UserService userService;

    @GetMapping("/")
    public String index() {
        return "login";
    }

    @GetMapping("/toReg")
    public String toReg() {
        return "reg";
    }

    @GetMapping("/toInoculation")
    public ModelAndView toInoculation(ModelAndView mv, HttpServletRequest request) {
        mv.setViewName("yimiao");
        return getModelAndView(mv, request);
    }

    @GetMapping("/toCaseHistory")
    public ModelAndView toCaseHistory(ModelAndView mv, HttpServletRequest request) {
        mv.setViewName("case_history");
        return getModelAndView(mv, request);
    }

    @GetMapping("/toTestReport")
    public ModelAndView toTestReport(ModelAndView mv, HttpServletRequest request) {
        mv.setViewName("nucleic_test_report");
        return getModelAndView(mv, request);
    }

    @GetMapping("/toTravel")
    public ModelAndView toTravel(ModelAndView mv, HttpServletRequest request) {
        mv.setViewName("travel");
        return getModelAndView(mv, request);
    }

    @GetMapping("/toRiskArea")
    public ModelAndView toRiskArea(ModelAndView mv, HttpServletRequest request) {
        mv.setViewName("risk_area");
        return getModelAndView(mv, request);
    }

    @GetMapping("/toKnowledge")
    public ModelAndView toKnowledge(ModelAndView mv, HttpServletRequest request) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null ){
            mv.addObject("msg", "请登陆");
            mv.setViewName("login");
            return mv;
        }
        if (user.getRole() == 2) {
            mv.setViewName("knowledge");
            mv.addObject("isAdmin", true);
            return mv;
        }
        List<EpidemicPreventionKnowledge> list = epidemicPreventionKnowledgeService.list();
        list.forEach(item -> {
            if (item.getSendUserId() == null) {
                return;
            }
            User byId = userService.getById(item.getSendUserId());
            if (byId == null) {
                return;
            }
            item.setUsername(byId.getName());
        });
        mv.addObject("knowledgeList", list);
        mv.setViewName("knowledge_user");
        return mv;
    }

    private ModelAndView getModelAndView(ModelAndView mv, HttpServletRequest request) {
        String loginUser = (String) request.getSession().getAttribute("loginUser");
        User user = JSONObject.parseObject(loginUser, User.class);
        if (user == null ){
            mv.addObject("msg", "请登陆");
            mv.setViewName("login");
            return mv;
        }
        if (user.getRole() == 2) {
            mv.addObject("isAdmin", true);
        }else {
            mv.addObject("isAdmin", false);
        }
        return mv;
    }

    @GetMapping("/toUserManage")
    public String toUserManage() {
        return "user_manage";
    }
    @GetMapping("/toEditInoculation")
    public String toEditInoculation() {
        return "editInoculation";
    }

    @GetMapping("/toEditCaseHistory")
    public String toEditCaseHistory() {
        return "editCaseHistory";
    }

    @GetMapping("/toEditTestReport")
    public String toEditTestReport() {
        return "editTestReport";
    }

    @GetMapping("/toEditTravel")
    public String toEditTravel() {
        return "editTravel";
    }

    @GetMapping("/toEditRiskArea")
    public String toEditRiskArea() {
        return "editRiskArea";
    }

    @GetMapping("/toEditKnowledge")
    public String editKnowledge() {
        return "editKnowledge";
    }
}

Guess you like

Origin blog.csdn.net/whirlwind526/article/details/123684168