2.3 KiB
Bug Fix Report - 2026-05-25
Fixed Issues
1. AssetDAO.update() SQL语句不完整 ✅
文件: src/main/java/com/asset/dao/AssetDAO.java
问题: 修改资产时SQL语句缺少 asset_code 和 status 字段
修复前:
String sql = "UPDATE t_asset SET asset_name=?, category_id=?, value=?, purchase_date=?, location=?, description=? WHERE id=?";
修复后:
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
问题: 生产环境不安全,建议加密