温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
1. 项目背景与意义
随着家政服务行业的快速发展,服务人员的技能水平参差不齐,用户在选择家政服务时往往缺乏客观、透明的评价依据。传统的人工评级方式效率低、标准不统一,难以满足规模化管理的需求。因此,开发一套基于 Spring Boot + Vue3 的家政服务人员技能评级系统,能够实现技能评级的标准化、数字化和可视化,提升家政服务机构的运营管理效率,增强用户对服务质量的信任度。
2. 系统需求分析
本系统面向家政服务机构和用户两类核心角色,围绕服务人员技能评级的全流程进行功能设计,主要需求包括以下几个方面:
- 人员管理:支持服务人员信息的录入、查询、编辑和状态管理,包括姓名、工种、从业年限、联系方式等基础信息。
- 技能评级:支持按工种(如保洁、月嫂、养老护理等)设定评级标准,由管理员或评审人员对服务人员进行多维度技能评分,并生成综合评级结果。
- 评级记录:完整记录每次评级的历史数据,支持按人员、工种、时间等条件进行查询和追溯。
- 用户查询:用户可查看服务人员的技能等级、评级详情和评价记录,作为选择服务的参考依据。
- 系统管理:包括用户权限管理、工种配置、评级指标配置和数据统计等功能。
3. 系统架构设计
系统采用前后端分离架构,前端基于 Vue3 + Element Plus 构建单页应用,后端基于 Spring Boot 提供 RESTful API 服务,数据存储使用 MySQL 数据库。整体架构清晰、职责分明,便于后续扩展和维护。
flowchart TD A[Vue3 前端] -->|HTTP/JSON| B[Spring Boot 后端] B --> C[业务逻辑层 Service] C --> D[数据访问层 Mapper] D --> E[(MySQL 数据库)] B --> F[Redis 缓存] A --> G[Element Plus 组件库]4. 数据库设计
系统核心数据表包括用户表、服务人员表、工种表、评级指标表、评级记录表和评级明细表。以下为关键表结构设计:
| 表名 | 字段 | 类型 | 说明 |
|---|---|---|---|
| worker | id | bigint | 主键,自增 |
| worker | name | varchar(50) | 服务人员姓名 |
| worker | work_type_id | bigint | 工种 ID,关联工种表 |
| worker | years_of_service | int | 从业年限 |
| worker | phone | varchar(20) | 联系电话 |
| worker | status | tinyint | 状态:0 停用,1 启用 |
| rating_record | id | bigint | 主键,自增 |
| rating_record | worker_id | bigint | 服务人员 ID |
| rating_record | total_score | decimal(5,2) | 综合评分 |
| rating_record | level | varchar(20) | 评级等级,如 A/B/C |
| rating_record | rating_time | datetime | 评级时间 |
5. 后端核心实现
后端基于 Spring Boot 构建,采用分层架构,包括 Controller、Service、Mapper 三层。以下以评级记录查询接口为例,展示核心代码实现。
@RestController @RequestMapping("/api/rating") public class RatingController { @Autowired private RatingService ratingService; @GetMapping("/list") public Result<PageResult<RatingRecordVO>> list( @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize, RatingQueryDTO queryDTO) { PageResult<RatingRecordVO> page = ratingService.queryRatingRecords(pageNum, pageSize, queryDTO); return Result.success(page); } @PostMapping("/submit") public Result<Void> submit(@RequestBody RatingSubmitDTO dto) { ratingService.submitRating(dto); return Result.success(); } }评级提交时,系统会根据各维度评分自动计算综合得分,并依据预设的等级区间生成评级等级,同时写入评级记录和评级明细表,保证数据的一致性和可追溯性。
6. 前端核心实现
前端基于 Vue3 + Element Plus 开发,使用 Vue Router 管理页面路由,Pinia 管理全局状态。以下为服务人员列表页面的核心代码片段。
<template> <div class="worker-list"> <el-table :data="workerList" border stripe> <el-table-column prop="name" label="姓名" width="120" /> <el-table-column prop="workTypeName" label="工种" width="120" /> <el-table-column prop="level" label="技能等级" width="120" /> <el-table-column prop="totalScore" label="综合评分" width="120" /> <el-table-column label="操作"> <template #default="{ row }"> <el-button type="primary" size="small" @click="viewDetail(row)">查看评级</el-button> </template> </el-table-column> </el-table> </div> </template> <script setup> import { ref, onMounted } from 'vue' import { getWorkerList } from '@/api/worker' const workerList = ref([]) onMounted(async () => { const res = await getWorkerList() workerList.value = res.data }) </script>7. 系统测试与部署
系统开发完成后,需进行功能测试、接口测试和性能测试,确保各模块功能正常、接口响应稳定。部署方面,前端构建产物可部署至 Nginx 静态服务器,后端打包为 Jar 包运行于服务器,数据库使用 MySQL 并定期备份。
8. 总结与展望
本文设计并实现了一套基于 Spring Boot + Vue3 的家政服务人员技能评级系统,实现了人员管理、技能评级、记录查询和用户查看等核心功能,有效提升了家政服务管理的规范化和数字化水平。未来可进一步引入 AI 智能评分辅助、用户评价反馈机制以及大数据统计分析,持续优化评级体系的科学性和实用性。