“吴震修改招生就业和学生空床位查询”
This commit is contained in:
1 parent
0745d287f5
commit
80cdde97a1
9 files changed
+113
-8
No files matched your search
+50
-1
@@ -30,6 +30,7 @@ import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
|
||||
/**
|
||||
* 宿舍床位信息Service业务层处理
|
||||
@@ -157,7 +158,55 @@ public class XgDormBedServiceImpl implements IXgDormBedService {
|
||||
*/
|
||||
@Override
|
||||
public List<XgDormBedDetailVo> queryBedDetailsByRoomId(Long roomId) {
|
||||
return baseMapper.selectBedDetailsByRoomId(roomId);
|
||||
List<XgDormBedDetailVo> result = new ArrayList<>();
|
||||
|
||||
// 第一步:从 xg_dorm_bed_student 为主表查有学生的床位
|
||||
List<Map<String, Object>> studentBeds = xgDormBedStudentMapper.selectRoomStudents(roomId);
|
||||
|
||||
Set<Long> occupiedBedIds = new HashSet<>();
|
||||
for (Map<String, Object> row : studentBeds) {
|
||||
XgDormBedDetailVo vo = new XgDormBedDetailVo();
|
||||
Object bedIdObj = row.get("bed_id");
|
||||
Long bedId = bedIdObj != null ? ((Number) bedIdObj).longValue() : null;
|
||||
if (bedId != null) {
|
||||
occupiedBedIds.add(bedId);
|
||||
}
|
||||
vo.setId(bedId);
|
||||
vo.setBedCode(row.get("bed_code") != null ? row.get("bed_code").toString() : null);
|
||||
vo.setBedName(row.get("bed_name") != null ? row.get("bed_name").toString() : null);
|
||||
vo.setRoomId(roomId);
|
||||
vo.setStudentId(row.get("student_id") != null ? ((Number) row.get("student_id")).longValue() : null);
|
||||
vo.setStudentNo(row.get("student_no") != null ? row.get("student_no").toString() : null);
|
||||
vo.setStudentName(row.get("student_name") != null ? row.get("student_name").toString() : null);
|
||||
vo.setStudentGender(row.get("gender") != null ? row.get("gender").toString() : null);
|
||||
vo.setClassName(row.get("class_name") != null ? row.get("class_name").toString() : null);
|
||||
vo.setCollegeName(row.get("college_name") != null ? row.get("college_name").toString() : null);
|
||||
vo.setMajorName(row.get("major_name") != null ? row.get("major_name").toString() : null);
|
||||
vo.setAssignmentStatus("0");
|
||||
vo.setBedStatus("1");
|
||||
result.add(vo);
|
||||
}
|
||||
|
||||
// 第二步:补查 xg_dorm_bed 中未被分配的空床位
|
||||
List<XgDormBed> emptyBeds = baseMapper.selectList(
|
||||
Wrappers.<XgDormBed>lambdaQuery()
|
||||
.eq(XgDormBed::getRoomId, roomId)
|
||||
.notIn(!occupiedBedIds.isEmpty(), XgDormBed::getId, occupiedBedIds)
|
||||
);
|
||||
|
||||
for (XgDormBed bed : emptyBeds) {
|
||||
XgDormBedDetailVo vo = new XgDormBedDetailVo();
|
||||
vo.setId(bed.getId());
|
||||
vo.setBedCode(bed.getBedCode());
|
||||
vo.setBedName(bed.getBedName());
|
||||
vo.setRoomId(bed.getRoomId());
|
||||
vo.setBedType(bed.getBedType());
|
||||
vo.setBedStatus(bed.getBedStatus());
|
||||
vo.setBedRemark(bed.getRemark());
|
||||
result.add(vo);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -68,9 +68,9 @@ public class ZsjyEnrollmentInfoBo extends BaseEntity {
|
||||
private String phone1;
|
||||
|
||||
/**
|
||||
* 联系手机号码2
|
||||
* 联系手机号码2(非必填,填写时需符合手机号格式)
|
||||
*/
|
||||
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号码格式不正确", groups = { AddGroup.class, EditGroup.class })
|
||||
@Pattern(regexp = "^$|^1[3-9]\\d{9}$", message = "手机号码格式不正确", groups = { AddGroup.class, EditGroup.class })
|
||||
private String phone2;
|
||||
|
||||
/**
|
||||
|
||||
@@ -207,6 +207,29 @@
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/dmdl/dmdl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "宿舍点名",
|
||||
"navigationBarBackgroundColor": "#0051d9",
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/dmdl/dmdlCheck",
|
||||
"style": {
|
||||
"navigationBarTitleText": "宿舍点名",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/dmdl/dmdlDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "点名详情",
|
||||
"navigationBarBackgroundColor": "#0051d9",
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/xssswsjc/xssswsjc",
|
||||
"style": {
|
||||
|
||||
@@ -553,7 +553,7 @@ export default {
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
],
|
||||
phone2: [
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
{ pattern: /^$|^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
],
|
||||
collegeName: [{ required: true, message: '所属学院不能为空', trigger: 'change' }],
|
||||
appliedMajor: [{ required: true, message: '报考专业不能为空', trigger: 'change' }],
|
||||
|
||||
@@ -220,6 +220,19 @@
|
||||
/>
|
||||
</template>
|
||||
</ServiceItem>
|
||||
<ServiceItem
|
||||
v-if="hasPermi(['student:dormrollcall:listapp'])"
|
||||
title="宿舍点名"
|
||||
@click="gotoDormRollCall"
|
||||
>
|
||||
<template #icon>
|
||||
<image
|
||||
src="/static/00135.png"
|
||||
mode="aspectFit"
|
||||
style="width: 24px; height: 24px"
|
||||
/>
|
||||
</template>
|
||||
</ServiceItem>
|
||||
|
||||
<ServiceItem
|
||||
v-if="hasPermi(['student:dynamics:list'])"
|
||||
@@ -1204,6 +1217,13 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
// 跳转到宿舍点名页面
|
||||
gotoDormRollCall() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/xgss/dmdl/dmdl',
|
||||
});
|
||||
},
|
||||
|
||||
// 跳转到勤工俭学页面
|
||||
gotoWorkStudy() {
|
||||
uni.navigateTo({
|
||||
|
||||
@@ -272,3 +272,16 @@ export const getClassUnoccupiedBedDetails = (classId?: string | number) => {
|
||||
params: { classId }
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 根据房间ID获取住在当前房间的所有学生信息
|
||||
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
|
||||
* @param roomId 房间ID
|
||||
*/
|
||||
export const getRoomStudents = (roomId: string | number) => {
|
||||
return request({
|
||||
url: '/dormBedStudent/dormBedStudent/getRoomStudents',
|
||||
method: 'get',
|
||||
params: { roomId }
|
||||
});
|
||||
};
|
||||
@@ -35,9 +35,9 @@ export interface EnrollmentInfoVO {
|
||||
phone1: string;
|
||||
|
||||
/**
|
||||
* 联系手机号码2
|
||||
* 联系手机号码2(非必填)
|
||||
*/
|
||||
phone2: string;
|
||||
phone2?: string;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
|
||||
@@ -358,7 +358,7 @@ const rules = {
|
||||
{ required: true, message: '联系电话不能为空', trigger: 'blur' },
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
|
||||
],
|
||||
phone2: [{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }],
|
||||
phone2: [{ pattern: /^$|^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }],
|
||||
collegeName: [{ required: true, message: '所属学院不能为空', trigger: 'change' }],
|
||||
appliedMajor: [{ required: true, message: '报考专业不能为空', trigger: 'change' }],
|
||||
totalScoreFull: [{ type: 'number', min: 100, max: 1000, message: '中考满分应在100-1000之间', trigger: 'blur' }],
|
||||
|
||||
@@ -1058,7 +1058,7 @@ const data = reactive<PageData<EnrollmentInfoForm, EnrollmentInfoQuery>>({
|
||||
{ required: true, message: '联系电话不能为空', trigger: 'blur' },
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
|
||||
],
|
||||
phone2: [{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }],
|
||||
phone2: [{ pattern: /^$|^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }],
|
||||
appliedMajor: [{ required: true, message: '报考专业不能为空', trigger: 'change' }],
|
||||
totalScoreFull: [{ type: 'number', min: 100, max: 1000, message: '中考满分应在100-1000之间', trigger: 'blur' }],
|
||||
totalScore: [{ type: 'number', min: 0, message: '中考成绩不能小于0', trigger: 'blur' }],
|
||||
|
||||
Reference in new issue
Block a user