133 lines
4.3 KiB
Markdown
133 lines
4.3 KiB
Markdown
# 空间批量操作问题修复任务清单
|
||
|
||
**文档版本**: 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:批量操作限制
|
||
|
||
**当前代码**:
|
||
- `canBatchGenerateRoom` 和 `canBatchGenerateParking` 已定义但未使用
|
||
- `handleBatchGenerate` 函数没有检查这些限制
|
||
|
||
**修复方案**:
|
||
- 确认批量操作菜单是否正确显示所有选项
|
||
- 如果有限制,移除限制
|
||
|
||
### 问题7:楼栋地址生成
|
||
|
||
**当前代码**:
|
||
```java
|
||
if (parentNode != null) {
|
||
building.setAddress(parentAddress + " " + name);
|
||
} else {
|
||
building.setAddress(name); // ⚠️ 问题所在
|
||
}
|
||
```
|
||
|
||
**修复方案**:
|
||
- 当没有父节点时,使用项目地址作为基础地址
|
||
|
||
### 问题8:项目统计数据
|
||
|
||
**前端接口定义**:
|
||
```typescript
|
||
export interface ProjectStatistics {
|
||
totalBuildings: number;
|
||
totalUnits: number;
|
||
totalParking: number;
|
||
totalResidents: number; // ❌ 后端没有
|
||
totalOwners: number; // ❌ 后端没有
|
||
totalTenants: number; // ❌ 后端没有
|
||
}
|
||
```
|
||
|
||
**后端接口定义**:
|
||
```java
|
||
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%** |
|