Files
java/Project/assetmanager/docs/bugfix-report.md
2026-05-26 20:47:59 +08:00

64 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`
**问题**: 生产环境不安全,建议加密