ether-docs/02-DESIGN/domains/batch-operations/task_list.md

4.3 KiB
Raw Blame History

空间批量操作问题修复任务清单

文档版本: v1.0
创建日期: 2026-02-23


任务清单

一、问题排查与修复

序号 任务 状态 说明
1.1 问题1生成类型隐藏 已完成 已正确隐藏,无需修改
1.2 问题2批量生成房间保存失败 待排查 需要启动服务测试
1.3 问题3车位后缀为空 已完成 已正确设置,无需修改
1.4 问题4车位序号位数问题 待排查 需要启动服务测试
1.5 问题5批量操作限制 待修复 需要移除限制检查
1.6 问题6车位列表分页 已完成 已支持分页,无需修改
1.7 问题7楼栋地址生成 待修复 需要使用项目地址
1.8 问题8项目统计数据 待修复 前后端接口不匹配

二、代码修改任务

序号 任务 状态 文件
2.1 修复前端 ProjectStatistics 接口定义 待修复 src/api/mdm/project.ts
2.2 修复前端项目详情页统计显示 待修复 src/views/mdm/project/detail.vue
2.3 修复后端楼栋地址生成逻辑 待修复 SpaceNodeServiceImpl.java
2.4 移除批量操作限制 待修复 SpaceManagement.vue

三、测试验证任务

序号 任务 状态 说明
3.1 启动后端服务 待执行 ether-mdm
3.2 启动前端服务 待执行 ether-ui-admin
3.3 测试批量生成房间 待执行 验证保存成功
3.4 测试批量生成车位 待执行 验证序号位数和名称
3.5 测试批量生成楼栋 待执行 验证地址生成
3.6 测试项目统计数据 待执行 验证户数和面积显示

问题分析详情

问题2批量生成房间保存失败

可能原因:

  1. 后端 spaceNodeRepository.findById(buildingId) 可能找不到楼栋(项目隔离问题)
  2. 前端传递的 projectId 可能与后端项目上下文不一致

修复方案:

  • 检查后端是否使用 ProjectContextHolder.getProjectId() 获取项目上下文
  • 确保前端传递的 projectId 正确

问题4车位序号位数问题

代码分析:

  • 前端传递 digitCount: formState.value.digitCount第489行
  • 后端接收 digitCount 并使用 String.format("%0" + digitCount + "d", number)第1060行

可能原因:

  • 前端 digitCount 默认值是 3第525行
  • 后端默认值也是 3第1055行
  • 需要实际测试验证

问题5批量操作限制

当前代码:

  • canBatchGenerateRoomcanBatchGenerateParking 已定义但未使用
  • handleBatchGenerate 函数没有检查这些限制

修复方案:

  • 确认批量操作菜单是否正确显示所有选项
  • 如果有限制,移除限制

问题7楼栋地址生成

当前代码:

if (parentNode != null) {
    building.setAddress(parentAddress + " " + name);
} else {
    building.setAddress(name);  // ⚠️ 问题所在
}

修复方案:

  • 当没有父节点时,使用项目地址作为基础地址

问题8项目统计数据

前端接口定义:

export interface ProjectStatistics {
  totalBuildings: number;
  totalUnits: number;
  totalParking: number;
  totalResidents: number;  // ❌ 后端没有
  totalOwners: number;     // ❌ 后端没有
  totalTenants: number;    // ❌ 后端没有
}

后端接口定义:

public class ProjectStatistics {
    private Integer totalBuildings;
    private Integer totalUnits;
    private Integer totalRooms;     // ❌ 前端没有
    private Integer totalParking;
    private Integer totalShops;     // ❌ 前端没有
    private BigDecimal totalBuildingArea;  // ❌ 前端没有
    private BigDecimal totalParkingArea;   // ❌ 前端没有
    private Integer totalMembers;   // ❌ 前端没有
}

修复方案:

  • 同步前端接口定义与后端一致
  • 修改前端显示逻辑,使用 totalRooms 作为户数

任务统计

状态 数量 占比
已完成 3 21%
待处理 11 79%
合计 14 100%