diff --git a/srs-admin/src/main/java/com/srs/web/controller/staff/SrsStaffOneStopRegistrationRecordController.java b/srs-admin/src/main/java/com/srs/web/controller/staff/SrsStaffOneStopRegistrationRecordController.java index d91e8f9..7edb0e4 100644 --- a/srs-admin/src/main/java/com/srs/web/controller/staff/SrsStaffOneStopRegistrationRecordController.java +++ b/srs-admin/src/main/java/com/srs/web/controller/staff/SrsStaffOneStopRegistrationRecordController.java @@ -147,7 +147,7 @@ public class SrsStaffOneStopRegistrationRecordController extends BaseController @RequestParam(value = "role", required = false) String role, @RequestParam(value = "borrower", required = false) String borrower, @RequestParam(value = "auditStatus", required = false) Integer auditStatus, - @RequestParam(value = "rtDepar", required = false) String rtDepar) { + @RequestParam(value = "rtDepar", required = false) List rtDepar) { // Call Service method with the Map return success(srsStaffOneStopRegistrationRecordService.getDepartmentReservationCount(startTime,endTime,role,borrower,auditStatus,rtDepar)); @@ -162,7 +162,7 @@ public class SrsStaffOneStopRegistrationRecordController extends BaseController @RequestParam(value = "role", required = false) String role, @RequestParam(value = "borrower", required = false) String borrower, @RequestParam(value = "auditStatus", required = false) Integer auditStatus, - @RequestParam(value = "rtDepar", required = false) String rtDepar,HttpServletResponse response) { + @RequestParam(value = "rtDepar", required = false) List rtDepar,HttpServletResponse response) { List> departmentReservationCount = srsStaffOneStopRegistrationRecordService.getDepartmentReservationCount(startTime, endTime, role, borrower, auditStatus, rtDepar); // 把departmentReservationCount的值转给DepartmentReservationCountExport对象 List list = new ArrayList<>(); @@ -185,7 +185,7 @@ public class SrsStaffOneStopRegistrationRecordController extends BaseController @RequestParam(value = "role", required = false) String role, @RequestParam(value = "borrower", required = false) String borrower, @RequestParam(value = "auditStatus", required = false) Integer auditStatus, - @RequestParam(value = "rtDepar", required = false) String rtDepar) { + @RequestParam(value = "rtDepar", required = false) List rtDepar) { // Call Service method with the Map return success(srsStaffOneStopRegistrationRecordService.getRoomReservationCount(startTime,endTime,role,borrower,auditStatus,rtDepar)); } @@ -199,7 +199,7 @@ public class SrsStaffOneStopRegistrationRecordController extends BaseController @RequestParam(value = "role", required = false) String role, @RequestParam(value = "borrower", required = false) String borrower, @RequestParam(value = "auditStatus", required = false) Integer auditStatus, - @RequestParam(value = "rtDepar", required = false) String rtDepar,HttpServletResponse response) { + @RequestParam(value = "rtDepar", required = false) List rtDepar,HttpServletResponse response) { // Call Service method with the Map List> roomReservationCount = srsStaffOneStopRegistrationRecordService.getRoomReservationCount(startTime, endTime, role, borrower, auditStatus, rtDepar); List list = new ArrayList<>(); @@ -222,7 +222,7 @@ public class SrsStaffOneStopRegistrationRecordController extends BaseController @RequestParam(value = "role", required = false) String role, @RequestParam(value = "borrower", required = false) String borrower, @RequestParam(value = "auditStatus", required = false) Integer auditStatus, - @RequestParam(value = "rtDepar", required = false) String rtDepar) { + @RequestParam(value = "rtDepar", required = false) List rtDepar) { // Call Service method with the Map return success(srsStaffOneStopRegistrationRecordService.getDepartmentUsageStatistics(startTime,endTime,role,borrower,auditStatus,rtDepar)); } @@ -235,7 +235,7 @@ public class SrsStaffOneStopRegistrationRecordController extends BaseController @RequestParam(value = "role", required = false) String role, @RequestParam(value = "borrower", required = false) String borrower, @RequestParam(value = "auditStatus", required = false) Integer auditStatus, - @RequestParam(value = "rtDepar", required = false) String rtDepar) { + @RequestParam(value = "rtDepar", required = false) List rtDepar) { // Call Service method with the Map return success(srsStaffOneStopRegistrationRecordService.getRoomUsageStatistics(startTime,endTime,role,borrower,auditStatus,rtDepar)); diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SrsStuYearMapper.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SrsStuYearMapper.java index f8aea83..df874e1 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SrsStuYearMapper.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SrsStuYearMapper.java @@ -34,7 +34,6 @@ public interface SrsStuYearMapper extends BaseMapper /** * 查询【请填写功能名称】列表 - * * @param srsStuYear 【请填写功能名称】 * @return 【请填写功能名称】集合 */ diff --git a/srs-routine/src/main/java/com/srs/routine/service/impl/RtStuDisciplinaryApplicationServiceImpl.java b/srs-routine/src/main/java/com/srs/routine/service/impl/RtStuDisciplinaryApplicationServiceImpl.java index 2b747e5..2078af4 100644 --- a/srs-routine/src/main/java/com/srs/routine/service/impl/RtStuDisciplinaryApplicationServiceImpl.java +++ b/srs-routine/src/main/java/com/srs/routine/service/impl/RtStuDisciplinaryApplicationServiceImpl.java @@ -116,6 +116,8 @@ public class RtStuDisciplinaryApplicationServiceImpl extends ServiceImpl rtDepar ); List> getRoomReservationCount( @@ -110,7 +110,7 @@ public interface SrsStaffOneStopRegistrationRecordMapper extends BaseMapper rtDepar ); List> getDepartmentUsageStatistics( @@ -119,7 +119,7 @@ public interface SrsStaffOneStopRegistrationRecordMapper extends BaseMapper rtDepar ); List> getRoomUsageStatistics( @@ -128,7 +128,7 @@ public interface SrsStaffOneStopRegistrationRecordMapper extends BaseMapper rtDepar ); int updateAuditStatusToPending(@Param("id") Integer id); diff --git a/srs-staff/src/main/java/com/srs/staff/service/ISrsStaffOneStopRegistrationRecordService.java b/srs-staff/src/main/java/com/srs/staff/service/ISrsStaffOneStopRegistrationRecordService.java index 6e87560..8e1b81a 100644 --- a/srs-staff/src/main/java/com/srs/staff/service/ISrsStaffOneStopRegistrationRecordService.java +++ b/srs-staff/src/main/java/com/srs/staff/service/ISrsStaffOneStopRegistrationRecordService.java @@ -82,13 +82,13 @@ public interface ISrsStaffOneStopRegistrationRecordService extends IService> getDepartmentReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar); + public List> getDepartmentReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar); - public List> getRoomReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar); + public List> getRoomReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar); - public List> getDepartmentUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar); + public List> getDepartmentUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar); - public List> getRoomUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar); + public List> getRoomUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar); int resetAuditStatus(Integer id); diff --git a/srs-staff/src/main/java/com/srs/staff/service/impl/SrsStaffOneStopRegistrationRecordServiceImpl.java b/srs-staff/src/main/java/com/srs/staff/service/impl/SrsStaffOneStopRegistrationRecordServiceImpl.java index 835e577..66f7bc4 100644 --- a/srs-staff/src/main/java/com/srs/staff/service/impl/SrsStaffOneStopRegistrationRecordServiceImpl.java +++ b/srs-staff/src/main/java/com/srs/staff/service/impl/SrsStaffOneStopRegistrationRecordServiceImpl.java @@ -260,22 +260,22 @@ public class SrsStaffOneStopRegistrationRecordServiceImpl extends ServiceImpl> getDepartmentReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar) { + public List> getDepartmentReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar) { return srsStaffOneStopRegistrationRecordMapper.getDepartmentUsage(startTime,endTime,role,borrower,auditStatus,rtDepar); } // 统计各个功能房的预约数量 - public List> getRoomReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar) { + public List> getRoomReservationCount(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar) { return srsStaffOneStopRegistrationRecordMapper.getRoomReservationCount(startTime,endTime,role,borrower,auditStatus,rtDepar); } // 统计各部门功能房使用情况 - public List> getDepartmentUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar) { + public List> getDepartmentUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar) { return srsStaffOneStopRegistrationRecordMapper.getDepartmentUsageStatistics(startTime,endTime,role,borrower,auditStatus,rtDepar); } // 统计各个功能房使用情况 - public List> getRoomUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,String rtDepar) { + public List> getRoomUsageStatistics(String startTime,String endTime,String role,String borrower,Integer auditStatus,List rtDepar) { return srsStaffOneStopRegistrationRecordMapper.getRoomUsageStatistics(startTime,endTime,role,borrower,auditStatus,rtDepar); } diff --git a/srs-staff/src/main/java/com/srs/staff/service/impl/StaffOneStopRoomReservationServiceImpl.java b/srs-staff/src/main/java/com/srs/staff/service/impl/StaffOneStopRoomReservationServiceImpl.java index 583a0e8..36d3144 100644 --- a/srs-staff/src/main/java/com/srs/staff/service/impl/StaffOneStopRoomReservationServiceImpl.java +++ b/srs-staff/src/main/java/com/srs/staff/service/impl/StaffOneStopRoomReservationServiceImpl.java @@ -5,13 +5,19 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.TextStyle; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Objects; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.srs.common.exception.ServiceException; import com.srs.common.utils.DateUtils; import com.srs.common.utils.SecurityUtils; +import com.srs.comprehensive.domain.SrsStuYear; +import com.srs.comprehensive.domain.Vo.StuYearIdName; +import com.srs.comprehensive.mapper.SrsStuYearMapper; import com.srs.staff.domain.StaffOneStopRoom; import com.srs.staff.domain.StaffOneStopRoomOpeningHours; import com.srs.staff.mapper.StaffOneStopRoomMapper; @@ -39,6 +45,9 @@ public class StaffOneStopRoomReservationServiceImpl extends ServiceImpl selectStaffOneStopRoomReservationByRtTime(String roomNo ,String rtTime) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); @@ -95,8 +105,70 @@ public class StaffOneStopRoomReservationServiceImpl extends ServiceImpl selectStaffOneStopRoomReservationList(StaffOneStopRoomReservation staffOneStopRoomReservation) { - return staffOneStopRoomReservationMapper.selectStaffOneStopRoomReservationList(staffOneStopRoomReservation); + List list = staffOneStopRoomReservationMapper.selectStaffOneStopRoomReservationList(staffOneStopRoomReservation); + + // 查询所有学年数据用于匹配 + List allYears = srsStuYearMapper.selectSrsStuYearList(new SrsStuYear()); + + for (StaffOneStopRoomReservation reservation : list) { + // 根据预约时间确定学年 + if (reservation.getRtTime() != null && !reservation.getRtTime().isEmpty()) { + String yearName = determineSchoolYearByTime(reservation.getRtTime(), allYears); + reservation.setYearName(yearName); + } + } + return list; } + + /** + * 根据预约时间确定所属学年 + * + * @param rtTime 预约时间 + * @param allYears 所有学年数据 + * @return 学年名称 + */ + private String determineSchoolYearByTime(String rtTime, List allYears) { + try { + // 解析预约时间 + Date reservationDate = null; + // 尝试解析不同的日期格式 + if (rtTime.length() == 10) { // "yyyy-MM-dd" 格式 + reservationDate = DateUtils.parseDate(rtTime, "yyyy-MM-dd"); + } else if (rtTime.length() == 7) { // "yyyy-MM" 格式 + reservationDate = DateUtils.parseDate(rtTime + "-01", "yyyy-MM-dd"); + } else if (rtTime.length() == 4) { // "yyyy" 格式 + reservationDate = DateUtils.parseDate(rtTime + "-01-01", "yyyy-MM-dd"); + } else { + // 尝试解析其他格式 + reservationDate = DateUtils.parseDate(rtTime); + } + + if (reservationDate == null) { + return null; + } + + // 遍历所有学年,找到匹配的学年 + for (SrsStuYear year : allYears) { + if (year.getStartTime() != null && year.getEndTime() != null) { + // 直接使用学年自身的起始和结束时间进行判断 + if (reservationDate.compareTo(year.getStartTime()) >= 0 && reservationDate.compareTo(year.getEndTime()) <= 0) { + // 截取字符串,去掉"学年"两个字 + String yearName = year.getStuYearName(); + if (yearName != null && yearName.endsWith("学年")) { + return yearName.substring(0, yearName.length() - 2); + } + return yearName; + } + } + } + } catch (Exception e) { + // 解析日期失败,返回null + System.out.println("解析预约时间失败: " + rtTime + ", 错误: " + e.getMessage()); + } + + return null; + } + /** * 新增一站式社区-功能房-预约记录 @@ -158,4 +230,4 @@ public class StaffOneStopRoomReservationServiceImpl extends ServiceImpl AND audit_status = #{auditStatus} - - AND rt_depar = #{rtDepar} + + AND rt_depar IN + + #{item} + GROUP BY @@ -182,8 +185,11 @@ AND audit_status = #{auditStatus} - - AND rt_depar = #{rtDepar} + + AND rt_depar IN + + #{item} + GROUP BY room_name @@ -216,8 +222,11 @@ AND audit_status = #{auditStatus} - - AND rt_depar = #{rtDepar} + + AND rt_depar IN + + #{item} + GROUP BY rt_depar @@ -250,8 +259,11 @@ AND audit_status = #{auditStatus} - - AND rt_depar = #{rtDepar} + + AND rt_depar IN + + #{item} + GROUP BY room_name