diff --git a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/vo/EnrollmentItemVO.java b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/vo/EnrollmentItemVO.java index 6074d3402..172b9a31e 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/vo/EnrollmentItemVO.java +++ b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/vo/EnrollmentItemVO.java @@ -55,6 +55,18 @@ public class EnrollmentItemVO /** 备注 */ private String remark; + /** 宿舍楼栋 (当前分配) */ + private String dormBuilding; + + /** 宿舍房间号 (当前分配) */ + private String dormRoom; + + /** 床位号 (当前分配) */ + private String bedNo; + + /** 住宿状态 (0: 预分配, 1: 已入住, 2: 已退宿) */ + private Integer accommodationStatus; + public Long getEnrollmentId() { return enrollmentId; @@ -204,4 +216,44 @@ public class EnrollmentItemVO { this.remark = remark; } + + public String getDormBuilding() + { + return dormBuilding; + } + + public void setDormBuilding(String dormBuilding) + { + this.dormBuilding = dormBuilding; + } + + public String getDormRoom() + { + return dormRoom; + } + + public void setDormRoom(String dormRoom) + { + this.dormRoom = dormRoom; + } + + public String getBedNo() + { + return bedNo; + } + + public void setBedNo(String bedNo) + { + this.bedNo = bedNo; + } + + public Integer getAccommodationStatus() + { + return accommodationStatus; + } + + public void setAccommodationStatus(Integer accommodationStatus) + { + this.accommodationStatus = accommodationStatus; + } } diff --git a/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainEnrollmentMapper.xml b/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainEnrollmentMapper.xml index 77e028dea..4532a238a 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainEnrollmentMapper.xml +++ b/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainEnrollmentMapper.xml @@ -78,9 +78,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" e.accommodation_required as accommodationRequired, e.join_time as joinTime, e.complete_time as completeTime, - e.remark as remark + e.remark as remark, + d.dorm_building as dormBuilding, + d.dorm_room as dormRoom, + a.bed_no as bedNo, + a.accommodation_status as accommodationStatus from train_enrollment e left join train_student s on e.student_id = s.s_id + left join ( + select a1.enrollment_id, a1.dorm_id, a1.bed_no, a1.accommodation_status + from train_accommodation a1 + inner join ( + select enrollment_id, max(accommodation_id) as max_id + from train_accommodation + group by enrollment_id + ) a2 on a1.accommodation_id = a2.max_id + ) a on e.enrollment_id = a.enrollment_id + left join train_dormitory_info d on a.dorm_id = d.dorm_id e.plan_id = #{planId} diff --git a/build_ui/src/views/train/checkin/index.vue b/build_ui/src/views/train/checkin/index.vue index cc38fb69e..f8440f81b 100644 --- a/build_ui/src/views/train/checkin/index.vue +++ b/build_ui/src/views/train/checkin/index.vue @@ -389,15 +389,20 @@ export default { }).finally(() => { this.loading = false }) }, loadPlans() { + const queryPlanId = this.$route.query.planId + const queryLessonId = this.$route.query.lessonId listPlan({ pageNum: 1, pageSize: 100 }).then(response => { this.planOptions = response.rows || [] - if (this.planOptions.length > 0 && !this.rosterQuery.planId) { + if (queryPlanId && this.planOptions.some(p => p.planId === queryPlanId)) { + this.rosterQuery.planId = queryPlanId + this.handlePlanChange(queryPlanId, queryLessonId) + } else if (this.planOptions.length > 0 && !this.rosterQuery.planId) { this.rosterQuery.planId = this.planOptions[0].planId this.handlePlanChange(this.rosterQuery.planId) } }).catch(() => {}) }, - handlePlanChange(planId) { + handlePlanChange(planId, targetLessonId) { this.rosterQuery.lessonId = null this.rosterList = [] this.lessonOptions = [] @@ -425,7 +430,9 @@ export default { } this.lessonOptions = list if (list.length > 0) { - this.rosterQuery.lessonId = list[0].lessonId + const parsedTarget = targetLessonId ? Number(targetLessonId) : null + const matched = parsedTarget ? list.find(item => item.lessonId === parsedTarget) : null + this.rosterQuery.lessonId = matched ? matched.lessonId : list[0].lessonId this.loadRoster() } }).finally(() => { diff --git a/build_ui/src/views/train/plan/components/EnrollmentPanel.vue b/build_ui/src/views/train/plan/components/EnrollmentPanel.vue index 3cc470cc1..f9687b055 100644 --- a/build_ui/src/views/train/plan/components/EnrollmentPanel.vue +++ b/build_ui/src/views/train/plan/components/EnrollmentPanel.vue @@ -82,6 +82,31 @@ + + + - +