一、个人简介
💖💖作者:计算机编程果茶熊 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 计算机毕业设计选题 💕💕文末获取源码联系计算机编程果茶熊
二、系统介绍
开发语言:Java 后端框架:Spring Boot(Spring+SpringMVC+Mybatis) 前端:Vue 数据库:MySQL 系统架构:B/S 开发工具:IDEA
《养老院管理系统》是一套基于Spring Boot框架构建的现代化养老机构信息管理解决方案,采用Java作为核心开发语言,结合Vue前端技术和MySQL数据库,构建了完整的B/S架构体系。该系统涵盖了养老院运营管理的各个环节,从基础的用户管理、老人信息管理、床位管理到具体的服务管理、费用管理,再到社区交流功能的实现,形成了一个功能完备的管理平台。系统通过床位入住管理、退房申请管理、外出登记管理等模块确保老人居住安全,通过来访登记管理、事故登记管理等功能保障院内秩序,同时通过服务类型管理、服务项目管理、服务预定管理等模块提升服务质量。此外,系统还集成了代购信息管理、餐饮套餐管理、费用缴纳管理等生活服务功能,以及论坛交流管理、敏感词管理等社区互动功能,为养老院提供了全方位的数字化管理支持。
三、视频解说
四、部分功能展示
五、部分代码展示
import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.math.BigDecimal;
@Service
public class NursingHomeManagementService {
@Autowired
private ElderlyInfoMapper elderlyInfoMapper;
@Autowired
private BedManagementMapper bedManagementMapper;
@Autowired
private ServiceBookingMapper serviceBookingMapper;
private SparkSession spark = SparkSession.builder()
.appName("NursingHomeDataAnalysis")
.master("local[*]")
.getOrCreate();
public String processElderlyAdmission(ElderlyInfo elderlyInfo, BedInfo bedInfo) {
if (elderlyInfo.getName() == null || elderlyInfo.getName().trim().isEmpty()) {
return "老人姓名不能为空";
}
if (elderlyInfo.getAge() < 60 || elderlyInfo.getAge() > 120) {
return "老人年龄必须在60-120岁之间";
}
if (elderlyInfo.getHealthStatus() == null) {
elderlyInfo.setHealthStatus("待评估");
}
BedInfo availableBed = bedManagementMapper.findAvailableBed(bedInfo.getBedType(), bedInfo.getRoomType());
if (availableBed == null) {
return "暂无符合条件的空床位";
}
elderlyInfo.setBedId(availableBed.getBedId());
elderlyInfo.setAdmissionDate(LocalDateTime.now());
elderlyInfo.setStatus("在院");
try {
elderlyInfoMapper.insertElderlyInfo(elderlyInfo);
availableBed.setOccupancyStatus("已占用");
availableBed.setElderlyId(elderlyInfo.getElderlyId());
availableBed.setOccupancyDate(LocalDateTime.now());
bedManagementMapper.updateBedStatus(availableBed);
AdmissionRecord admissionRecord = new AdmissionRecord();
admissionRecord.setElderlyId(elderlyInfo.getElderlyId());
admissionRecord.setBedId(availableBed.getBedId());
admissionRecord.setAdmissionDate(LocalDateTime.now());
admissionRecord.setProcessStatus("已完成");
elderlyInfoMapper.insertAdmissionRecord(admissionRecord);
return "老人入住办理成功,床位号:" + availableBed.getBedNumber();
} catch (Exception e) {
return "入住办理失败:" + e.getMessage();
}
}
public String processBedAllocation(Integer elderlyId, String bedType, String roomType) {
ElderlyInfo elderlyInfo = elderlyInfoMapper.findByElderlyId(elderlyId);
if (elderlyInfo == null) {
return "未找到该老人信息";
}
if (!"在院".equals(elderlyInfo.getStatus())) {
return "该老人当前状态不允许分配床位";
}
List<BedInfo> availableBeds = bedManagementMapper.findAvailableBeds(bedType, roomType);
if (availableBeds.isEmpty()) {
return "暂无符合条件的空床位";
}
BedInfo optimalBed = null;
for (BedInfo bed : availableBeds) {
if (bed.getFacilityLevel() != null && bed.getFacilityLevel() >= 3) {
optimalBed = bed;
break;
}
}
if (optimalBed == null) {
optimalBed = availableBeds.get(0);
}
if (elderlyInfo.getBedId() != null) {
BedInfo oldBed = bedManagementMapper.findByBedId(elderlyInfo.getBedId());
if (oldBed != null) {
oldBed.setOccupancyStatus("空闲");
oldBed.setElderlyId(null);
oldBed.setOccupancyDate(null);
bedManagementMapper.updateBedStatus(oldBed);
}
}
optimalBed.setOccupancyStatus("已占用");
optimalBed.setElderlyId(elderlyId);
optimalBed.setOccupancyDate(LocalDateTime.now());
bedManagementMapper.updateBedStatus(optimalBed);
elderlyInfo.setBedId(optimalBed.getBedId());
elderlyInfoMapper.updateElderlyInfo(elderlyInfo);
BedAllocationRecord record = new BedAllocationRecord();
record.setElderlyId(elderlyId);
record.setBedId(optimalBed.getBedId());
record.setAllocationDate(LocalDateTime.now());
record.setOperatorId(getCurrentUserId());
bedManagementMapper.insertAllocationRecord(record);
return "床位分配成功,新床位号:" + optimalBed.getBedNumber();
}
public String processServiceBooking(ServiceBooking serviceBooking) {
if (serviceBooking.getElderlyId() == null) {
return "老人信息不能为空";
}
if (serviceBooking.getServiceId() == null) {
return "服务项目不能为空";
}
ElderlyInfo elderlyInfo = elderlyInfoMapper.findByElderlyId(serviceBooking.getElderlyId());
if (elderlyInfo == null || !"在院".equals(elderlyInfo.getStatus())) {
return "老人不在院或信息有误";
}
ServiceType serviceType = serviceBookingMapper.findServiceTypeById(serviceBooking.getServiceId());
if (serviceType == null || !"可用".equals(serviceType.getStatus())) {
return "选择的服务项目不可用";
}
if (serviceBooking.getScheduledDate() == null) {
serviceBooking.setScheduledDate(LocalDateTime.now().plusHours(2));
}
if (serviceBooking.getScheduledDate().isBefore(LocalDateTime.now())) {
return "预约时间不能早于当前时间";
}
List<ServiceBooking> conflictBookings = serviceBookingMapper.findConflictBookings(
serviceBooking.getServiceId(),
serviceBooking.getScheduledDate(),
serviceBooking.getScheduledDate().plusHours(2)
);
if (!conflictBookings.isEmpty()) {
return "该时间段已有其他预约,请选择其他时间";
}
serviceBooking.setBookingDate(LocalDateTime.now());
serviceBooking.setBookingStatus("已预约");
serviceBooking.setTotalAmount(serviceType.getBasePrice());
if (elderlyInfo.getVipLevel() != null && elderlyInfo.getVipLevel() > 0) {
BigDecimal discount = BigDecimal.valueOf(0.9);
serviceBooking.setTotalAmount(serviceBooking.getTotalAmount().multiply(discount));
}
try {
serviceBookingMapper.insertServiceBooking(serviceBooking);
ServiceSchedule schedule = new ServiceSchedule();
schedule.setBookingId(serviceBooking.getBookingId());
schedule.setServiceProviderId(serviceType.getDefaultProviderId());
schedule.setScheduleDate(serviceBooking.getScheduledDate());
schedule.setScheduleStatus("待执行");
serviceBookingMapper.insertServiceSchedule(schedule);
return "服务预约成功,预约编号:" + serviceBooking.getBookingId() + ",预约金额:" + serviceBooking.getTotalAmount();
} catch (Exception e) {
return "服务预约失败:" + e.getMessage();
}
}
}
六、部分文档展示
七、END
💕💕文末获取源码联系计算机编程果茶熊