refactor: resolve remaining field audit issues
This commit is contained in:
@@ -108,7 +108,7 @@ export class OccupanciesService {
|
||||
}
|
||||
|
||||
// 首位入住者确定房间性别
|
||||
if (student.gender && !room.gender) {
|
||||
if ((student.gender === '男' || student.gender === '女') && !room.gender) {
|
||||
await this.roomRepo.update(room.id, { gender: student.gender });
|
||||
}
|
||||
|
||||
@@ -140,14 +140,6 @@ export class OccupanciesService {
|
||||
// 更新宿舍状态
|
||||
await this.roomRepo.update(occ.roomId, { status: 'available' });
|
||||
|
||||
// 如果房间已无在住人员,重置房间性别
|
||||
const remaining = await this.repo.count({
|
||||
where: { roomId: occ.roomId, checkOutDate: IsNull() },
|
||||
});
|
||||
if (remaining === 0) {
|
||||
await this.roomRepo.update(occ.roomId, { gender: null as any });
|
||||
}
|
||||
|
||||
return occ;
|
||||
}
|
||||
|
||||
@@ -173,14 +165,6 @@ export class OccupanciesService {
|
||||
await runner.manager.update(Locker, oldOcc.lockerId, { status: 'available' });
|
||||
}
|
||||
await runner.manager.update(Room, oldOcc.roomId, { status: 'available' });
|
||||
// 旧房如果已无在住人员,重置性别
|
||||
const oldRemaining = await runner.manager.count(Occupancy, {
|
||||
where: { roomId: oldOcc.roomId, checkOutDate: IsNull() },
|
||||
});
|
||||
if (oldRemaining === 0) {
|
||||
await runner.manager.update(Room, oldOcc.roomId, { gender: null as any });
|
||||
}
|
||||
|
||||
// 检查新房容量
|
||||
const newRoom = await runner.manager.findOne(Room, { where: { id: dto.newRoomId } });
|
||||
if (!newRoom) throw new NotFoundException('目标宿舍不存在');
|
||||
@@ -240,7 +224,7 @@ export class OccupanciesService {
|
||||
}
|
||||
|
||||
// 首位入住者确定新房性别
|
||||
if (student?.gender && !newRoom.gender) {
|
||||
if ((student?.gender === '男' || student?.gender === '女') && !newRoom.gender) {
|
||||
await runner.manager.update(Room, newRoom.id, { gender: student.gender });
|
||||
}
|
||||
|
||||
@@ -339,13 +323,6 @@ export class OccupanciesService {
|
||||
await runner.manager.save(occ);
|
||||
// 更新房间状态
|
||||
await runner.manager.update(Room, occ.roomId, { status: 'available' });
|
||||
// 如果房间已无在住人员,重置性别
|
||||
const remaining = await runner.manager.count(Occupancy, {
|
||||
where: { roomId: occ.roomId, checkOutDate: IsNull() },
|
||||
});
|
||||
if (remaining === 0) {
|
||||
await runner.manager.update(Room, occ.roomId, { gender: null as any });
|
||||
}
|
||||
// 释放床位/柜子
|
||||
if (occ.bedId) await runner.manager.update(Bed, occ.bedId, { status: 'available' });
|
||||
if (occ.lockerId)
|
||||
@@ -521,7 +498,11 @@ export class OccupanciesService {
|
||||
await this.repo.save(this.repo.create(occData));
|
||||
|
||||
// 7. 首位入住者确定房间性别
|
||||
if (student.gender && !room.gender) {
|
||||
if (
|
||||
!row.checkOutDate?.trim() &&
|
||||
(student.gender === '男' || student.gender === '女') &&
|
||||
!room.gender
|
||||
) {
|
||||
await this.roomRepo.update(room.id, { gender: student.gender });
|
||||
room.gender = student.gender;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user