• 基于Springboot社区人口管理系统的分析与实现


    一,项目简介

    社区疫情防控管理系统的开发主要为满足基层社区人员对社区居民疫情防控的需要,经过社区走访与调查研究,深入一线了解防控工作的流程和需求,得出本系统的基本需求要求。

    系统的用户使用主要分为两类,一类是居委会管理人员,一类是居民用户,居委会管理人员主要进行相关信息的管理操作,居民主要进行相关信息的查看,以了解本社区目前最新的疫情防控状态。

    管理员用户主要功能分析:

    1. 进行基本的信息管理功能:居民信息管理、地址信息管理、用户管理等
    2. 进行小区进出的信息管理:访客来访管理、居民出入管理、高危住户管理等
    3. 相关信息查看:出入记录、居民基本信息、相关统计信息等

    居民用户的主要功能分析:

    1. 查看居民居住信息、查看高住户信息、查看居民统计信息等
    2. 查看访客记录信息、个人出入信息登记等

    二,技术及环境介绍

    语言环境:Java: jdk1.8

    数据库:Mysql: mysql5.7

    应用服务器:Tomcat: tomcat8.5.31

    开发工具:IDEA或eclipse

    后台技术:Spring boot+ SpringMVC + MyBatisPlus,连接池采用 Druid,安全框架使用 Shiro,缓存使用ehcache

    前台技术:Bootstrap + layer 实现

    使用:

    1,IDEA或ECLIPSE导入项目:配置MAVEN环境

    2,MYSQL数据库创建名为communitydb数据库

    3,yml文件中修改数据库的账户密码为自己的

    4,启动程序的启动类(springboot程序直接启动启动类运行即可)

    三,系统展示

    整个软件系统的开发从最初的需求分析,概要设计到详细设计,都是为系统的最终实现来做准备工作的,可以说系统实现部分是我们目前最终的一个成果。系统实现部分主要是介绍一下疫情社区管理系统的部分核心功能模块的实现,包含前端UI 界面的实现以及各模块的核心代码实现,并对各个核心模块做一下具体的业务功能介绍,让我们对整个系统主要完成的核心功能实现有一个基本的了解。

    登陆

    ​编辑

    注册

    ​编辑

    住户管理

    ​编辑

    ​编辑

    ​编辑

    出入管理

    ​编辑

    ​编辑

    ​编辑

    访客模块

    ​编辑

    地址管理

    ​编辑

    系统管理

    用户管理

    ​编辑

    注册码管理

    ​编辑

    以上是展示的疫情期间社区对人口流动的管理系统的部分基本功能,项目功能完整,页面简洁

    四,核心代码展示

    package com.wjxy.communityapp.controller;
    
    import io.swagger.annotations.Api;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * @author Fluency
     * @creat 2021-01
     * 控制所有的请求跳转信息,进行页面渲染
     */
    
    @Controller
    @RequestMapping("/User")
    @Api(value = "页面跳转", tags = "页面跳转相关接口")
    public class IndexController {
        @RequestMapping("/login")
        public String loginPage() {
            return "page/sys/login";
        }
    
        @RequestMapping("/welcome")
        public String welcomePage() {
            return "page/sys/welcome";
        }
    
        @RequestMapping("/lookForPwd")
        public String lookForPwdPage() {
            return "page/sys/lookForPwd";
        }
    
        @RequestMapping("/register")
        public String registerPage() {
            return "page/sys/register";
        }
    
        @RequestMapping("/userInfo")
        public String setUserPage() {
            return "page/user/user-setting";
        }
    
        @RequestMapping("/updatePwd")
        public String updatePwdPage() {
            return "page/user/user-password";
        }
    
    
        @RequestMapping("/resident")
        public String residentPage() {
            return "page/residents/resident";
        }
    
        @RequestMapping("/addResident")
        public String addResidentPage() {
            return "page/residents/addResident";
        }
    
    
        @RequestMapping("/perilPage")
        public String perilPage() {
            return "page/residents/peril";
        }
    
        @RequestMapping("/resCount")
        public String resCountPage() {
            return "page/residents/resCount";
        }
    
    
        @RequestMapping("/records")
        public String recordsPage() {
            return "page/record/records";
        }
    
        @RequestMapping("/resRecord")
        public String recordPage() {
            return "page/record/resRecord";
        }
    
    
        @RequestMapping("/visRecord")
        public String visRecordPage() {
            return "page/record/visRecord";
        }
    
    
        @RequestMapping("/vistors")
        public String vistorsPage() {
            return "page/vistor/vistors";
        }
    
        @RequestMapping("/vistor")
        public String vistorPage() {
            return "page/vistor/vistor";
        }
    
        @RequestMapping("/address")
        public String addressPage() {
            return "page/address/address";
        }
    
        @RequestMapping("/addAddress")
        public String addAddressPage() {
            return "page/address/addAddress";
        }
    
    
        @RequestMapping("/users")
        public String userPage() {
            return "page/user/users";
        }
    
        @RequestMapping("/addUser")
        public String addUserPage() {
            return "page/user/addUser";
        }
    
        @RequestMapping("/aboutMe")
        public String aboutMePage() {
            return "page/sys/aboutMe";
        }
    
        @RequestMapping("/feedBack")
        public String feedbackPage() {
            return "page/info/feedBack";
        }
    
        @RequestMapping("/userSalt")
        public String userSaltPage() {
            return "page/salt/userSalt";
        }
    
    
        @RequestMapping("/404")
        public String exceptionPage() {
            return "page/sys/404";
        }
    
    
    }
    复制代码
    package com.wjxy.communityapp.controller;
    
    import com.wjxy.communityapp.service.AddressService;
    import com.wjxy.communityapp.service.RecordService;
    import com.wjxy.communityapp.service.ResidentService;
    import com.wjxy.communityapp.service.VisitorService;
    import com.wjxy.communityapp.utils.Result;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    /**
     * @author Fluency
     * @creat 2021-01
     */
    @RestController
    @RequestMapping("/main")
    public class MainController {
        @Autowired
        private ResidentService residentService;
        @Autowired
        private RecordService recordService;
        @Autowired
        private VisitorService visitorService;
        @Autowired
        private AddressService addressService;
    
        /**
         * 首页 数据展示
         *
         * 获取住户总数,地址总数,获取今日进出记录数,获取今日访客数
         */
        @PostMapping("datas")
        public Result showDatas(){
            //住户相关
            Result result = residentService.queryResCountl();
            Object data = result.getData();
            //地址相关
            long addTotal = addressService.queryAddressByParam().getTotal();
            //访客相关
            long visTotal = visitorService.queryVistorByParam().getTotal();
            //记录相关
            long recTotal = recordService.queryRecordByParam().getTotal();
            HashMap<String, Object> map = new HashMap<>(10);
            map.put("resCount",data);
            map.put("addCount",addTotal);
            map.put("visCount",visTotal);
            map.put("recCount",recTotal);
    
            return Result.ok(map);
        }
    
        /**
         * 首页  统计表
         * 记录的七天变化情况
         */
        @PostMapping("/echarts")
        public Result echarts(){
            /**
             * 获取当前时间,以及前七天的日期
             */
            String beginTime = null;
            String endTime = null;
            int size = 0;
            Date date = new Date();
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            HashMap<String, HashMap<String,Object>> map = new HashMap<>();
            HashMap<String, Object> dataMap = new HashMap<>();
            HashMap<String, Object> dateMap = new HashMap<>();
            ArrayList<Integer> list = new ArrayList<>();
            ArrayList<String> dateList = new ArrayList<>();
            calendar.add(Calendar.DATE,-6);
            beginTime = dateFormat.format(calendar.getTime());
            calendar.add(Calendar.DATE,1);
            endTime= dateFormat.format(calendar.getTime());
            size = recordService.queryRecCountByDate(beginTime, endTime).size();
            dateList.add(beginTime);
            list.add(size);
            for (int i = 0; i < 6; i++) {
                calendar.add(Calendar.DATE,0);
                beginTime = dateFormat.format(calendar.getTime());
                calendar.add(Calendar.DATE,1);
                endTime= dateFormat.format(calendar.getTime());
                size = recordService.queryRecCountByDate(beginTime, endTime).size();
                dateList.add(beginTime);
                list.add(size);
            }
            dateMap.put("data",dateList);
            dateMap.put("type","category");
            dateMap.put("boundaryGap",false);
            dataMap.put("name","进出记录");
            dataMap.put("type","line");
            dataMap.put("data",list);
            map.put("date",dateMap);
            map.put("data",dataMap);
    
            return  Result.ok(map);
        }
    }
    复制代码
    package com.wjxy.communityapp.controller;
    
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import com.wjxy.communityapp.dto.UserDto;
    import com.wjxy.communityapp.service.UserService;
    import com.wjxy.communityapp.utils.JsonObject;
    import com.wjxy.communityapp.utils.Result;
    import io.swagger.annotations.Api;
    import org.apache.shiro.authz.annotation.Logical;
    import org.apache.shiro.authz.annotation.RequiresRoles;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * <p>
     * 前端控制器
     * </p>
     *
     * @author Fluency
     * @since 2021-01-05
     */
    
    @Api(tags = "用户接口")
    @RestController
    @RequestMapping("/Users")
    @RequiresRoles(value = "admin", logical = Logical.OR)
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @GetMapping("/queryUserByParam")
        public JsonObject queryUserByParam(@RequestParam("page") Integer currentPage, @RequestParam("limit") Integer limit,
                                           @RequestParam(name = "params", required = false) String queryParams) {
            JsonObject<UserDto> object = new JsonObject<>();
            if (queryParams != null) {
                JSONObject jsonObject = JSON.parseObject(queryParams);
                String keyword = jsonObject.getString("keyword");
                IPage<UserDto> dtoIPage = userService.queryUserByParam(currentPage, limit, keyword);
                object.setCode(0);
                object.setMsg("ok");
                object.setCount(dtoIPage.getTotal());
                object.setData(dtoIPage);
                return object;
            } else {
                IPage<UserDto> dtoIPage = userService.queryUserByParam(currentPage, limit, queryParams);
                object.setCode(0);
                object.setMsg("ok");
                object.setCount(dtoIPage.getTotal());
                object.setData(dtoIPage);
                return object;
            }
        }
    
        @PostMapping("/addUser")
        public Result addAddress(UserDto userDto) {
            return userService.addUser(userDto);
        }
    
        @PostMapping("/deleteUser")
        public Result deleteAddress(Integer[] ids) {
            return userService.deleteUser(ids);
        }
    
        @PostMapping("/updateUser")
        public Result updateUser(UserDto userDto) {
            return userService.updateUser(userDto);
        }
    
    
    }
    复制代码

    五,项目总结

    经过几个月的努力还坚持,社区疫情防控管理系统终于完成了,关于社区防控的相关功能实现均按照初期的需求分析来进行并实现,整个开发过程中按照软件开发的基本流程来进行,先进行需求分析,再进行概要设计,然后进行了详细设计和编码实现,最通过过了系统的功能性测试。

  • 相关阅读:
    【算法】游戏中的学习,使用c#面向对象特性控制游戏角色移动
    2022最新iOS证书(.p12)、描述文件(.mobileprovision)申请和HBuider打包及注意注意事项
    【鸠占鹊巢】MySQL保留字非法使用,导致数据插入不成功
    标题采集软件-免费标题生成器
    Redis基本数据结构及底层实现原理
    如何通过axios拦截器,给除了登录请求以外,axios的所有异步请求添加JWT令牌!
    Vue2双向绑定源码分析
    安卓 view淡入淡出(fade in fade out) kotlin
    Android cannot resolve constructor intent解决
    【2018统考真题】给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高 效的算法,找出数组中未出现的最小正整数。
  • 原文地址:https://blog.csdn.net/weixin_68320784/article/details/124967395