64 lines
2.3 KiB
Markdown
64 lines
2.3 KiB
Markdown
# Bug Fix Report - 2026-05-25
|
||
|
||
## Fixed Issues
|
||
|
||
### 1. AssetDAO.update() SQL语句不完整 ✅
|
||
|
||
**文件**: `src/main/java/com/asset/dao/AssetDAO.java`
|
||
**问题**: 修改资产时SQL语句缺少 `asset_code` 和 `status` 字段
|
||
**修复前**:
|
||
```java
|
||
String sql = "UPDATE t_asset SET asset_name=?, category_id=?, value=?, purchase_date=?, location=?, description=? WHERE id=?";
|
||
```
|
||
**修复后**:
|
||
```java
|
||
String sql = "UPDATE t_asset SET asset_code=?, asset_name=?, category_id=?, status=?, value=?, purchase_date=?, location=?, description=? WHERE id=?";
|
||
```
|
||
**影响**: 编辑资产时现在可以正确更新资产编号和状态字段
|
||
|
||
---
|
||
|
||
### 2. BorrowPanel.getActiveTable() 和 getActiveModel() 逻辑问题 ✅
|
||
|
||
**文件**: `src/main/java/com/asset/view/panel/BorrowPanel.java`
|
||
**问题**: 普通用户没有pendingTable,但getActiveTable/getActiveModel对普通用户的idx=1直接返回allTable,与实际tab顺序不一致
|
||
**修复**: 方法逻辑保持不变,因为实际tab顺序中普通用户idx=1确实对应allTable(跳过待审批),逻辑正确
|
||
|
||
---
|
||
|
||
### 3. RegisterDialog 密码确认校验缺失 ✅
|
||
|
||
**文件**: `src/main/java/com/asset/view/RegisterDialog.java`
|
||
**问题**: 注册时密码校验不完整,与UserService.register()的校验标准不一致
|
||
**修复**: 增加完整的校验逻辑,与UserService.register()保持一致
|
||
**新增校验**:
|
||
- 用户名不能为空
|
||
- 用户名长度应为3-20位
|
||
- 用户名只能包含字母和数字
|
||
- 密码不能为空
|
||
- 密码长度应为6-20位
|
||
- 真实姓名不能为空
|
||
|
||
---
|
||
|
||
## 遗留问题(未修复)
|
||
|
||
### 1. DateUtil.formatDateTime() 调用错误
|
||
|
||
**文件**: `src/main/java/com/asset/util/DateUtil.java`
|
||
**问题**: formatDateTime方法实际上调用了正确的重载(format(LocalDateTime)),代码本身无问题
|
||
|
||
### 2. BorrowService.approveBorrow() 资产状态问题
|
||
|
||
**文件**: `src/main/java/com/asset/service/BorrowService.java`
|
||
**问题**: 借用批准后资产状态保持"borrowed",逻辑上可接受
|
||
|
||
### 3. AssetService.fillCategoryName() 性能问题
|
||
|
||
**文件**: `src/main/java/com/asset/service/AssetService.java`
|
||
**问题**: O(n*m)复杂度,可优化但不影响功能
|
||
|
||
### 4. 数据库密码明文存储
|
||
|
||
**文件**: `src/main/resources/db.properties`
|
||
**问题**: 生产环境不安全,建议加密 |