需求分析
目标用户:学校管理员
功能需求:
- 员工管理:员工的人员安排,考勤,工资管理等
- 学生管理:学生的安排,分班等
- 餐饮管理:学生的饮食计划管理
- 床位管理:学生的床位安排
- 接送管理:学生的接送管理
- 请假管理:处理学生家长的请假请求
- 缴费管理:查看缴费情况处理异常情况
- 退费管理:处理学生家长的退费请求,学生请假几天就退几天的费用
员工管理:
人员安排:系统应允许管理者创建员工档案,分配角色和权限,以及安排员工的值班表。
考勤管理:系统需要记录员工的出勤情况,包括迟到、早退、缺勤等,并能生成考勤报告。
工资管理:系统应支持工资的计算和发放,可能包括基本工资、加班费、奖金等的统计。
学生管理:
学生档案:系统应允许录入学生的基本信息,如姓名、年龄、联系方式、监护人信息等。
分班管理:系统需要提供分班功能,根据学生的年龄或其他标准将学生分配到不同的班级。
餐饮管理:
饮食计划:系统应支持制定学生的饮食计划,包括菜单规划、营养配餐等。
餐饮记录:系统需要记录学生的用餐情况,以便进行食品消耗统计和营养摄入分析。
床位管理:
床位安排:系统应允许管理者分配学生的床位,并记录床位的使用情况。
接送管理:
接送记录:系统需要记录学生的接送时间、人员等信息,确保学生的安全。
请假管理:
请假申请:系统应提供家长在线提交请假申请的功能。
请假审批:管理者可以审批请假申请,并记录在系统中。
缴费管理:
缴费记录:系统需要记录学生的缴费情况,包括缴费金额、日期、缴费周期等。
异常处理:系统应支持对未按时缴费的情况进行提醒和处理。
退费管理:
退费申请:系统应允许家长提交退费申请,并说明退费原因。
退费计算:系统需要根据学生的请假天数自动计算应退费用。
退费审批:管理者可以审批退费申请,并记录在系统中。
设计框架:框架前端使用uniapp结合vue3.2语法实现,后端采用unicloud云开发,主要包括云数据库和云函数
数据库类图基于plantUML实现
代码:
@startuml
left to right direction
skinparam packageStyle rectangle
' Define the namespace
namespace SchoolDormitoryManagementSystem {
' Define the classes
class Student {
- student_id: int
- name: string
- age: int
- guardian_contact: string
- class_id: int
}
class Employee {
- employee_id: int
- name: string
- role: string
- contact_info: string
- salary: float
}
class Class {
- class_id: int
- class_name: string
- teacher_id: int
}
class MealPlan {
- meal_plan_id: int
- date: string
- menu: string
- recipe: string
}
class Bed {
- bed_id: int
- student_id: int
- room_number: int
}
class PickupDropoffRecord {
- record_id: int
- student_id: int
- pickup_time: string
- dropoff_time: string
- pickup_person: string
- dropoff_person: string
}
class LeaveRequest {
- request_id: int
- student_id: int
- start_date: string
- end_date: string
- reason: string
- status: string
}
class PaymentRecord {
- payment_id: int
- student_id: int
- amount: float
- payment_date: string
- payment_method: string
}
class RefundRequest {
- refund_id: int
- student_id: int
- amount: float
- request_date: string
- reason: string
- status: string
}
' Define the relationships
Student "1" -- "*" PaymentRecord
Student "1" -- "*" LeaveRequest
Student "1" -- "*" RefundRequest
' Define the stereotypes
@enduml
时序图
代码:
@startuml
participant User as U
participant SchoolDormitoryManagementSystem as SDMS
U -> SDMS : 创建学生档案
SDMS --> U : 学生档案创建成功
U -> SDMS : 更新学生档案
SDMS --> U : 学生档案更新成功
U -> SDMS : 删除学生档案
SDMS --> U : 学生档案删除成功
U -> SDMS : 创建员工档案
SDMS --> U : 员工档案创建成功
U -> SDMS : 更新员工档案
SDMS --> U : 员工档案更新成功
U -> SDMS : 删除员工档案
SDMS --> U : 员工档案删除成功
U -> SDMS : 创建班级
SDMS --> U : 班级创建成功
U -> SDMS : 更新班级
SDMS --> U : 班级更新成功
U -> SDMS : 删除班级
SDMS --> U : 班级删除成功
U -> SDMS : 创建餐饮计划
SDMS --> U : 餐饮计划创建成功
U -> SDMS : 更新餐饮计划
SDMS --> U : 餐饮计划更新成功
U -> SDMS : 删除餐饮计划
SDMS --> U : 餐饮计划删除成功
U -> SDMS : 创建床位
SDMS --> U : 床位创建成功
U -> SDMS : 更新床位
SDMS --> U : 床位更新成功
U -> SDMS : 删除床位
SDMS --> U : 床位删除成功
U -> SDMS : 创建接送记录
SDMS --> U : 接送记录创建成功
U -> SDMS : 更新接送记录
SDMS --> U : 接送记录更新成功
U -> SDMS : 删除接送记录
SDMS --> U : 接送记录删除成功
U -> SDMS : 创建请假记录
SDMS --> U : 请假记录创建成功
U -> SDMS : 更新请假记录
SDMS --> U : 请假记录更新成功
U -> SDMS : 删除请假记录
SDMS --> U : 请假记录删除成功
U -> SDMS : 创建缴费记录
SDMS --> U : 缴费记录创建成功
U -> SDMS : 更新缴费记录
SDMS --> U : 缴费记录更新成功
U -> SDMS : 删除缴费记录
SDMS --> U : 缴费记录删除成功
U -> SDMS : 创建退费记录
SDMS --> U : 退费记录创建成功
U -> SDMS : 更新退费记录
SDMS --> U : 退费记录更新成功
U -> SDMS : 删除退费记录
SDMS --> U : 退费记录删除成功
@enduml
其中,请假,缴费,退费需要涉及到家长参与,属于特殊情况,需要单独处理
代码:
@startuml
participant User as U
participant Parents as P
participant SchoolDormitoryManagementSystem as SDMS
P -> SDMS : 申请请假
U -> SDMS : 通过请假并创建请假记录
SDMS --> U : 请假记录创建成功
U -> SDMS : 更新请假记录
SDMS --> U : 请假记录更新成功
U -> SDMS : 删除请假记录
SDMS --> U : 请假记录删除成功
P -> SDMS : 创建缴费记录
SDMS --> P : 缴费记录创建成功
U -> SDMS : 更新缴费记录
SDMS --> U : 缴费记录更新成功
U -> SDMS : 删除缴费记录
SDMS --> U : 缴费记录删除成功
P -> SDMS : 创建退费记录
SDMS --> P : 退费记录创建成功
U -> SDMS : 更新退费记录
SDMS --> U : 退费记录更新成功
U -> SDMS : 删除退费记录
SDMS --> U : 退费记录删除成功
@enduml
接口设计
员工管理接口
1.1 添加员工
URL: /api/employees
1.2 获取员工列表
URL: /api/employees
1.3 更新员工信息
URL: /api/employees/{employee_id}
1.4 删除员工
URL: /api/employees/{employee_id}
学生管理接口
2.1 添加学生
URL: /api/students
2.2 获取学生列表
URL: /api/students
2.3 更新学生信息
URL: /api/students/{student_id}
2.4 删除学生
URL: /api/students/{student_id}
餐饮管理接口
3.1 添加餐饮计划
URL: /api/meal_plans
3.2 获取餐饮计划列表
URL: /api/meal_plans
3.3 更新餐饮计划
URL: /api/meal_plans/{meal_plan_id}
3.4 删除餐饮计划
URL: /api/meal_plans/{meal_plan_id}
床位管理接口
4.1 分配床位
URL: /api/beds
4.2 获取床位列表
URL: /api/beds
4.3 更新床位信息
URL: /api/beds/{bed_id}
4.4 删除床位
URL: /api/beds/{bed_id}
接送管理接口
5.1 记录接送
URL: /api/pickup_dropoff_records
5.2 获取接送记录列表
URL: /api/pickup_dropoff_records
5.3 更新接送记录
URL: /api/pickup_dropoff_records/{record_id}
5.4 删除接送记录
URL: /api/pickup_dropoff_records/{record_id}
请假管理接口
6.1 提交请假申请
URL: /api/leave_requests
6.2 获取请假申请列表
URL: /api/leave_requests
6.3 更新请假申请
URL: /api/leave_requests/{request_id}
6.4 删除请假申请
URL: /api/leave_requests/{request_id}
缴费管理接口
7.1 记录缴费
URL: /api/payment_records
7.2 获取缴费记录列表
URL: /api/payment_records
7.3 更新缴费记录
URL: /api/payment_records/{payment_id}
7.4 删除缴费记录
URL: /api/payment_records/{payment_id}
退费管理接口
8.1 提交退费申请
URL: /api/refund_requests
8.2 获取退费申请列表
URL: /api/refund_requests
8.4 删除退费申请
URL: /api/refund_requests/{refund_id}
用户管理接口
9.1 用户登录
URL: /api/users/login
9.2 用户注册
URL: /api/users
9.3 获取用户列表
URL: /api/users
9.4 更新用户信息
URL: /api/users/{user_id}
9.5 删除用户
URL: /api/users/{user_id}
系统设计实现的手段:
数据库设计,云数据库:
- 表名.init_data.json:数据表初始化数据
- 表名.index.json:表的索引配置,内容示例见下方初始化索引配置示例
- 表名.schema.json:表结构,参考:DB Schema表结构
- 表名.schema.ext.json:DB Schema扩展js,参考:DB Schema扩展js
- validateFunction/xxx.js:扩展校验函数,参考:validateFunction扩展校验函数
- package.json:主要用于配置schema扩展可以使用的公共模块,在database目录右键可以配置这些依赖
功能设计开发,云对象:
HBuilderX中在uniCloud/cloudfunctions目录新建云函数,选择类型为云对象,并创建方法,客户端的js中,import这个云对象,调用它的方法
https://doc.dcloud.net.cn/uniCloud/cloud-obj.html
页面设计,uniapp框架结合vue3.2语法实现,用到了uview库
开发环境:Hbuilder+unicloud云开发
插件安装:uni-id-pages
前端需要配置页面,后端需要配置钩子实现逻辑
前端配置微信小程序的id
登录注册:
tabbar配置:员工管理,学生管理,个人中心
- 员工管理:员工的人员安排,考勤,工资管理等,页面实现
- 学生管理:学生的安排,分班等,页面实现
- 餐饮管理:学生的饮食计划管理,页面实现
- 床位管理:学生的床位安排
- 接送管理:学生的接送管理
- 请假管理:处理学生家长的请假请求
- 缴费管理:查看缴费情况处理异常情况
- 退费管理:处理学生家长的退费请求,学生请假几天就退几天的费用