• 基于springboot的疫情社区生活服务系统


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    该系统创作于2022年4月,有基于springboot技术和ssm技术的两个版本,包含详细数据库设计,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:疫情、社区、生活服务、疫情社区等。

    项目功能:

    数据库表结构文档: 

    系统包含技术:

    后端:ssm和springboot两个版本(只是技术不一样,功能相同)
    前端:layui,js,css等
    开发工具:idea
    数据库:mysql 5.7
    JDK版本:jdk1.8
    服务器:tomcat8

    部分截图说明:

    下面是登录注册

    管理员首页

    管理员对区域维护

    管理员确诊病例与密接维护

    管理员对住户进行维护

    管理员查看数据统计

     管理员维护社区公告

    居民修改信息

    居民体温登记

    居民举报管理

    部分代码:

    确诊的操作部分

    1. /**
    2. * 分页查询
    3. * pageIndex 当前页码
    4. * pageSize 显示条数
    5. */
    6. @RequestMapping(value = "/findConfirme")
    7. public String findConfirme(Integer pageIndex, Integer pageSize, String uname,Model model,HttpServletRequest request) {
    8. HttpSession session = request.getSession();
    9. if(session.getAttribute("ad") == null){
    10. session.setAttribute("msg", "对不起,请登录!");
    11. return "login";
    12. }
    13. Map mp = new HashMap();
    14. mp.put("uname",uname);
    15. PageInfo<Confirme> pageList = confirmeService.findPageInfo(pageIndex,pageSize,mp);
    16. model.addAttribute("pageList",pageList);
    17. List<User> userList = userService.getAll();
    18. model.addAttribute("userList",userList);
    19. return "ConfirmeList";
    20. }
    21. /**
    22. * 添加
    23. */
    24. @RequestMapping(value = "/addConfirme" ,method = RequestMethod.POST)
    25. @ResponseBody
    26. public String addConfirme( @RequestBody Confirme confirme) {
    27. try{
    28. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    29. confirme.setCreateTime(sf.format(new Date()));
    30. confirmeService.addConfirme(confirme);
    31. return "200";
    32. }catch (Exception e){
    33. e.printStackTrace();
    34. return "201";
    35. }
    36. }
    37. /**
    38. * 删除
    39. */
    40. @RequestMapping( "/deleteConfirme")
    41. @ResponseBody
    42. public String deleteConfirme(String id) {
    43. int d = confirmeService.deleteConfirme(id);
    44. return "ConfirmeList";
    45. }
    46. /**
    47. * 修改
    48. */
    49. @RequestMapping( "/updateConfirme")
    50. @ResponseBody
    51. public String updateConfirme(@RequestBody Confirme confirme) {
    52. try{
    53. confirmeService.updateConfirme(confirme);
    54. return "200";
    55. }catch (Exception e){
    56. e.printStackTrace();
    57. return "201";
    58. }
    59. }
    60. /**
    61. * 按照ID查询
    62. */
    63. @RequestMapping( "/findConfirmeById")
    64. @ResponseBody
    65. public Confirme findConfirmeById(String id,Model model,HttpServletRequest request) {
    66. Confirme confirme= confirmeService.findConfirmeById(id);
    67. return confirme;
    68. }

    统计部分

    1. @RequestMapping(value = "/statistic")
    2. public String statistic(Model model, HttpServletRequest request) {
    3. HttpSession session = request.getSession();
    4. if(session.getAttribute("ad") == null){
    5. session.setAttribute("msg", "对不起,请登录!");
    6. return "login";
    7. }
    8. //最近一周确诊趋势图
    9. List<Double> yy = new ArrayList<>();
    10. List<String> days = getDays(7);
    11. List<String> dates = new ArrayList<>();
    12. List<Confirme> stemp = confirmeService.getAll();
    13. for(int i=0;i<days.size();i++){
    14. int finalI = i;
    15. List<Confirme> sfilter = stemp.stream().filter(a->a.getCfTime().equals(days.get(finalI))).collect(Collectors.toList());
    16. if(sfilter.size()>0){
    17. yy.add((double) sfilter.size());
    18. }else{
    19. yy.add((double) 0);
    20. }
    21. dates.add("'"+days.get(i)+"'");
    22. }
    23. model.addAttribute("dates",dates);
    24. model.addAttribute("yy",yy);
    25. //确诊人数占比
    26. List<String> items = new ArrayList<>();
    27. StringBuilder strs = new StringBuilder("[");
    28. Map mps = new HashMap();
    29. List<Confirme> confirmes = confirmeService.getAll();
    30. List<Confirme> confirmes1 = confirmes.stream().filter(a->a.getType().equals("密接")).collect(Collectors.toList());
    31. List<Confirme> confirmes2 = confirmes.stream().filter(a->a.getType().equals("确诊")).collect(Collectors.toList());
    32. items.add("'确诊'");
    33. strs.append("{value:").append(confirmes2.size()).append(",name:'").append("确诊").append("'},");
    34. items.add("'密接'");
    35. strs.append("{value:").append(confirmes1.size()).append(",name:'").append("密接").append("'},");
    36. List<User> userList = userService.getAll();
    37. items.add("'未确诊'");
    38. strs.append("{value:").append(userList.size()-confirmes.size()).append(",name:'").append("未确诊").append("'}");
    39. strs.append("]");
    40. model.addAttribute("strs",strs);
    41. model.addAttribute("items",items);
    42. return "statistic";
    43. }

    登录操作

    1. /**
    2. * 登录
    3. * 将提交数据(username,password)写入Admin对象
    4. */
    5. @RequestMapping(value = "/login")
    6. public String login(User user, Model model, HttpSession session, HttpServletRequest request) {
    7. if(user.getUsername()==null || user.getUsername().length()<=0 ){
    8. model.addAttribute("msg", "请输入登录名!");
    9. return "login";
    10. }
    11. if(user.getPassword()==null || user.getPassword().length()<1){
    12. model.addAttribute("msg", "请输入密码!");
    13. return "login";
    14. }
    15. if(user.getType()==null || user.getType().length()<1){
    16. model.addAttribute("msg", "请选择人员类型!");
    17. return "login";
    18. }
    19. Map mp = new HashMap();
    20. mp.put("username",user.getUsername());
    21. mp.put("password",user.getPassword());
    22. if(user.getType().equals("01")){
    23. List<Admin> ad = adminService.queryFilter(mp);
    24. if(ad!=null && ad.size()==1){
    25. session.setAttribute("ad", ad.get(0));
    26. session.setAttribute("type", "01");
    27. return "homepage1";
    28. }else{
    29. model.addAttribute("msg", "请确定账户信息是否正确!");
    30. return "login";
    31. }
    32. }else{
    33. List<User> ad = userService.queryFilter(mp);
    34. if(ad!=null && ad.size()==1){
    35. if(ad.get(0).getRid()!=null){
    36. Region regionById = regionService.findRegionById(ad.get(0).getRid());
    37. ad.get(0).setRname(regionById.getName());
    38. }
    39. session.setAttribute("ad", ad.get(0));
    40. session.setAttribute("type", "02");
    41. return "homepage2";
    42. }else{
    43. model.addAttribute("msg", "请确定账户信息是否正确!");
    44. return "login";
    45. }
    46. }
    47. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    利用SOP完成新客户培育
    下单小程序怎么做呢?
    动态规划:06不同路径II
    记Windows服务器Redis 6379被攻击 被设置主从模式同步项目数据
    mysql连接池DataSource,DruidDataSource的理解及其使用
    win10搭建ESP8266_RTOS_SDK编译环境
    使用Bochs调试操作系统代码
    RISCV 工具链下载链接
    Java高并发编程实战3,Java内存模型与Java对象结构
    学习笔记二十九:K8S配置管理中心Configmap实现微服务配置管理
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/127115973