# 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` **问题**: 生产环境不安全,建议加密