💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目
档案宝微信小程序介绍
档案宝微信小程序是一款基于Spring Boot后端架构和uni-app跨平台前端技术开发的数字化档案管理系统,专门为档案馆、图书馆等机构提供便民服务解决方案。该系统通过微信小程序的便捷入口,为用户提供楼层指引、人员信息查询、档案移交预约、参观查档预约等核心功能服务。系统采用MySQL数据库存储档案信息和用户数据,通过Spring Boot框架构建稳定可靠的后端服务接口,前端使用uni-app技术实现微信小程序的流畅交互体验。用户可以通过手机便捷地完成档案查询、预约办理、取消预约等操作,避免了传统线下排队等候的不便。系统还提供个人中心功能,方便用户管理自己的预约记录和个人信息。管理员可以通过系统管理模块对预约信息、用户数据进行统一管理和维护。整个系统界面简洁友好,操作流程清晰明了,既提高了档案馆的服务效率,也大大改善了民众办事的便利性和满意度。
档案宝微信小程序演示视频
档案宝微信小程序演示图片
档案宝微信小程序代码展示
import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@Service
public class ArchiveService {
@Autowired
private ArchiveMapper archiveMapper;
private SparkSession spark = SparkSession.builder().appName("ArchiveDataAnalysis").master("local[*]").getOrCreate();
public Result submitTransferAppointment(TransferAppointment appointment) {
if (appointment.getArchiveType() == null || appointment.getArchiveType().isEmpty()) {
return Result.error("档案类型不能为空");
}
if (appointment.getAppointmentDate() == null) {
return Result.error("预约日期不能为空");
}
LocalDateTime appointmentTime = appointment.getAppointmentDate();
if (appointmentTime.isBefore(LocalDateTime.now().plusDays(1))) {
return Result.error("预约时间至少提前一天");
}
int dailyCount = archiveMapper.countDailyTransferAppointments(appointmentTime.toLocalDate());
if (dailyCount >= 50) {
return Result.error("当日预约已满,请选择其他日期");
}
appointment.setStatus("待审核");
appointment.setCreateTime(LocalDateTime.now());
appointment.setAppointmentNumber(generateAppointmentNumber());
int result = archiveMapper.insertTransferAppointment(appointment);
if (result > 0) {
sendNotificationToUser(appointment.getUserId(), "移交预约提交成功,预约号:" + appointment.getAppointmentNumber());
return Result.success("预约提交成功");
}
return Result.error("预约提交失败");
}
public Result submitVisitAppointment(VisitAppointment appointment) {
if (appointment.getArchiveCategory() == null || appointment.getArchiveCategory().isEmpty()) {
return Result.error("查档类别不能为空");
}
if (appointment.getVisitPurpose() == null || appointment.getVisitPurpose().isEmpty()) {
return Result.error("查档目的不能为空");
}
LocalDateTime visitTime = appointment.getVisitDate();
if (visitTime.isBefore(LocalDateTime.now().plusHours(24))) {
return Result.error("参观预约时间至少提前24小时");
}
if (visitTime.getHour() < 9 || visitTime.getHour() > 17) {
return Result.error("预约时间必须在工作时间内(9:00-17:00)");
}
int hourlyCount = archiveMapper.countHourlyVisitAppointments(visitTime);
if (hourlyCount >= 10) {
return Result.error("该时段预约已满,请选择其他时间");
}
appointment.setStatus("已预约");
appointment.setCreateTime(LocalDateTime.now());
appointment.setVisitCode(generateVisitCode());
int result = archiveMapper.insertVisitAppointment(appointment);
if (result > 0) {
updateUserVisitHistory(appointment.getUserId(), appointment.getArchiveCategory());
return Result.success("参观预约成功,请凭预约码" + appointment.getVisitCode() + "前往查档");
}
return Result.error("预约失败,请重试");
}
public Result searchArchiveInfo(ArchiveSearchParam searchParam) {
if (searchParam.getKeyword() == null || searchParam.getKeyword().trim().isEmpty()) {
return Result.error("搜索关键词不能为空");
}
String keyword = searchParam.getKeyword().trim();
if (keyword.length() < 2) {
return Result.error("搜索关键词至少包含2个字符");
}
List<String> sensitiveWords = List.of("密级", "机密", "内部");
for (String word : sensitiveWords) {
if (keyword.contains(word)) {
return Result.error("搜索内容包含敏感词汇,请修改后重试");
}
}
searchParam.setSearchTime(LocalDateTime.now());
recordUserSearchHistory(searchParam.getUserId(), keyword);
List<ArchiveInfo> publicArchives = archiveMapper.searchPublicArchives(keyword, searchParam.getArchiveType());
List<ArchiveInfo> filteredResults = publicArchives.stream()
.filter(archive -> archive.getAccessLevel().equals("公开"))
.filter(archive -> !archive.getStatus().equals("整理中"))
.limit(100)
.collect(Collectors.toList());
if (filteredResults.isEmpty()) {
return Result.success("未找到相关档案信息,建议调整搜索条件");
}
for (ArchiveInfo archive : filteredResults) {
archive.setLocation(getArchiveLocation(archive.getShelfNumber()));
archive.setAvailableTime(calculateAvailableTime(archive.getId()));
}
return Result.success(filteredResults);
}
}
档案宝微信小程序文档展示
💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目