图标
build / build-push (push) Successful in 55s

This commit is contained in:
wanghu
2026-10-20 16:20:34 +08:00
parent 109ea9e4d4
commit 253a8f4a4f
4 changed files with 9 additions and 3 deletions
@@ -50,7 +50,7 @@ public class ClassroomController {
return classroomService.floors(buildingId);
}
/** 全校教室扁平列表(教室管理页「空间筛选树」数据源,轻量字段)。 */
/** 全校教室扁平列表(教室管理页「楼层筛选树」数据源,轻量字段)。 */
@GetMapping("Tree")
public List<Map<String, Object>> tree() {
return classroomService.tree();
@@ -36,7 +36,7 @@ public interface IClassroomService {
/** 楼栋下已有教室的楼层列表(升序,筛选项用)。 */
List<Integer> floors(Integer buildingId);
/** 全校教室扁平列表(空间筛选树数据源,仅轻量字段)。 */
/** 全校教室扁平列表(楼层筛选树数据源,仅轻量字段)。 */
List<Map<String, Object>> tree();
/** 批量添加教室,返回 {created, skipped, total}。 */
@@ -128,7 +128,7 @@ public class ClassroomService implements IClassroomService {
// 类型名映射
Map<Integer, String> typeNames = typeRepository.findBySchIdOrderBySortOrderAscIdAsc(schId).stream()
.collect(Collectors.toMap(ClassroomType::getId, ClassroomType::getTypeName, (a, b) -> a));
// 校区/楼栋名映射(列表跨楼栋时行内直接展示,空间筛选树与详情面板用)
// 校区/楼栋名映射(列表跨楼栋时行内直接展示,楼层筛选树与详情面板用)
Map<Integer, String> campusNames = campusRepository.findBySchIdOrderBySortOrderAscIdAsc(schId).stream()
.collect(Collectors.toMap(com.yunhai.acaclassroom.entity.Campus::getId,
com.yunhai.acaclassroom.entity.Campus::getCampusName, (a, b) -> a));
@@ -357,6 +357,9 @@ public class ClassroomService implements IClassroomService {
Map<Integer, Integer> equipmentMap =
sanitizeEquipmentMap(req.getEquipments(), req.getEquipmentIds(), r.getSchId());
classroomEquipmentRepository.deleteBySchIdAndClassroomId(r.getSchId(), r.getId());
// 先落盘删除:Hibernate 同一事务内 INSERT 先于 DELETE 执行,
// 不 flush 会让“保留原设备”的重插撞 (classroom_id, equipment_id) 唯一键。
classroomEquipmentRepository.flush();
equipmentMap.forEach((eqId, qty) -> {
com.yunhai.acaclassroom.entity.ClassroomEquipment ce =
new com.yunhai.acaclassroom.entity.ClassroomEquipment();