1. 项目背景与意义
随着我国人口老龄化进程不断加快,老年人口数量持续增长,同时残障人士的日常生活保障也日益受到社会关注。传统的扶老助残服务多依赖线下人工登记、电话沟通和纸质档案管理,存在信息分散、响应迟缓、服务资源难以统筹调配等问题。如何借助信息化手段提升养老助残服务的效率与质量,成为当前社会服务领域亟待解决的重要课题。
本课题基于 SpringBoot 技术栈设计并实现一套扶老助残管理系统,旨在为社区、民政部门及服务机构提供一个统一的信息化管理平台。系统通过整合老年人及残障人士的基础档案、服务需求、志愿者对接、物资发放和关怀记录等核心业务,实现服务流程的数字化与可视化,帮助管理人员及时掌握服务对象状况、合理调配资源、提升服务响应速度。该系统的建设不仅有助于提高基层扶老助残工作的管理效率,也对推动智慧养老、精准助残具有积极的现实意义。
2. 系统技术栈
本系统采用前后端分离的开发模式,后端基于 SpringBoot 构建 RESTful API 服务,前端使用 Vue.js 配合 Element UI 组件库实现管理界面,数据存储选用 MySQL 关系型数据库。整体技术选型兼顾了开发效率、系统稳定性与后期可维护性。
| 层次 | 技术选型 | 说明 |
|---|---|---|
| 后端框架 | SpringBoot 2.x | 提供自动配置、内嵌容器与快速构建能力 |
| 持久层 | MyBatis-Plus | 简化数据库操作,支持通用 CRUD 与分页查询 |
| 数据库 | MySQL 8.0 | 存储用户、档案、服务记录等业务数据 |
| 安全认证 | Spring Security + JWT | 实现登录认证与接口权限控制 |
| 前端框架 | Vue.js 2.x + Element UI | 构建后台管理界面与交互组件 |
| 构建工具 | Maven | 管理项目依赖与构建打包 |
3. 系统功能模块设计
根据扶老助残业务的实际需求,系统划分为以下核心功能模块:
- 用户管理模块:管理系统管理员、社区工作人员、志愿者等不同角色的账号信息与权限分配。
- 服务对象档案模块:维护老年人及残障人士的基本信息、健康状况、家庭住址、紧急联系人等档案资料。
- 服务需求管理模块:登记服务对象提出的助餐、助洁、助医、陪护等具体需求,并跟踪处理状态。
- 志愿者管理模块:管理志愿者注册信息、服务时长、服务评价与排班安排。
- 物资管理模块:记录慰问物资的入库、出库与发放情况,确保物资流向清晰可查。
- 关怀记录模块:记录工作人员或志愿者的上门探访、电话回访等关怀服务过程。
- 数据统计模块:按区域、服务类型、时间维度对服务数据进行统计,并以图表形式直观展示。
4. 数据库设计
系统核心数据表包括用户表、服务对象表、服务需求表、志愿者表、物资表和关怀记录表。以下以服务对象表和服务需求表为例说明表结构设计。
服务对象表(elder_disabled_person)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键,自增 |
| name | varchar(50) | 姓名 |
| gender | tinyint | 性别,0-男,1-女 |
| age | int | 年龄 |
| id_card | varchar(18) | 身份证号 |
| phone | varchar(20) | 联系电话 |
| address | varchar(200) | 家庭住址 |
| person_type | tinyint | 人员类型,0-老人,1-残障人士 |
| health_status | varchar(500) | 健康状况描述 |
| emergency_contact | varchar(50) | 紧急联系人 |
| emergency_phone | varchar(20) | 紧急联系电话 |
| create_time | datetime | 创建时间 |
服务需求表(service_demand)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键,自增 |
| person_id | bigint | 服务对象ID,关联服务对象表 |
| demand_type | varchar(50) | 需求类型,如助餐、助洁、助医 |
| demand_content | varchar(500) | 需求详细描述 |
| status | tinyint | 处理状态,0-待处理,1-处理中,2-已完成 |
| volunteer_id | bigint | 接单志愿者ID |
| create_time | datetime | 创建时间 |
| finish_time | datetime | 完成时间 |
5. 核心代码实现
本节选取系统开发中的几个关键代码片段进行说明,包括 SpringBoot 启动类、服务对象实体类、服务需求业务接口及其实现、控制器层接口。
5.1 SpringBoot 启动类
import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.fulao.zhucan.mapper") public class FulaoApplication { public static void main(String[] args) { SpringApplication.run(FulaoApplication.class, args); } }5.2 服务对象实体类
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.time.LocalDateTime; @Data @TableName("elder_disabled_person") public class Person { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer gender; private Integer age; private String idCard; private String phone; private String address; private Integer personType; private String healthStatus; private String emergencyContact; private String emergencyPhone; private LocalDateTime createTime; }5.3 服务需求业务接口与实现
import com.baomidou.mybatisplus.extension.service.IService; import com.fulao.zhucan.entity.ServiceDemand; public interface ServiceDemandService extends IService<ServiceDemand> { boolean assignVolunteer(Long demandId, Long volunteerId); boolean finishDemand(Long demandId); }import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fulao.zhucan.entity.ServiceDemand; import com.fulao.zhucan.mapper.ServiceDemandMapper; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @Service public class ServiceDemandServiceImpl extends ServiceImpl<ServiceDemandMapper, ServiceDemand> implements ServiceDemandService { @Override public boolean assignVolunteer(Long demandId, Long volunteerId) { ServiceDemand demand = getById(demandId); if (demand == null) { return false; } demand.setVolunteerId(volunteerId); demand.setStatus(1); return updateById(demand); } @Override public boolean finishDemand(Long demandId) { ServiceDemand demand = getById(demandId); if (demand == null) { return false; } demand.setStatus(2); demand.setFinishTime(LocalDateTime.now()); return updateById(demand); } }5.4 控制器层接口
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fulao.zhucan.common.Result; import com.fulao.zhucan.entity.ServiceDemand; import com.fulao.zhucan.service.ServiceDemandService; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/demand") public class ServiceDemandController { private final ServiceDemandService demandService; public ServiceDemandController(ServiceDemandService demandService) { this.demandService = demandService; } @GetMapping("/page") public Result page(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize, @RequestParam(required = false) Integer status) { Page<ServiceDemand> page = new Page<>(pageNum, pageSize); QueryWrapper<ServiceDemand> wrapper = new QueryWrapper<>(); if (status != null) { wrapper.eq("status", status); } wrapper.orderByDesc("create_time"); return Result.success(demandService.page(page, wrapper)); } @PostMapping("/assign") public Result assign(@RequestParam Long demandId, @RequestParam Long volunteerId) { boolean ok = demandService.assignVolunteer(demandId, volunteerId); return ok ? Result.success("派单成功") : Result.error("派单失败"); } @PostMapping("/finish") public Result finish(@RequestParam Long demandId) { boolean ok = demandService.finishDemand(demandId); return ok ? Result.success("服务已完成") : Result.error("操作失败"); } }6. 系统测试与总结
系统开发完成后,对用户登录、档案管理、需求派单、物资发放等核心功能进行了功能测试与接口测试。测试结果表明,各模块功能运行正常,接口响应稳定,能够满足扶老助残业务的基本管理需求。
本系统基于 SpringBoot 实现了扶老助残业务的信息化管理,有效提升了基层服务工作的数字化水平。后续可在移动端适配、智能推荐志愿者、服务满意度评价等方面进一步扩展,使系统更好地服务于养老助残事业。