4.5 KiB
按顺序继续完成程序
Goal
继续完成 MZH Library Management 的下一组核心功能,让现有 JSP + Servlet + JDBC 图书馆系统从已完成的基础业务链路继续向完整后台能力推进。
What I already know
- 用户要求“按顺序继续完成程序”,当前没有 active task,因此本任务用于恢复开发方向并确认下一步范围。
- 用户已选择下一步做 报表中心。
- 项目是 Java 11 Maven WAR,使用 JSP + Servlet + MySQL/JDBC。
- 已有认证、权限过滤、角色首页、图书目录、图书管理、读者管理、借书/还书/续借/逾期、读者借阅历史。
- 最近提交顺序显示功能推进为:认证/权限 -> 图书 -> 读者 -> 借还续借逾期。
- 数据库和权限模型中还预留了
manage_users、view_reports、view_system_logs等能力。 - 当前后台 Administration 卡片文案提到账号、角色、权限、系统维护入口,但实际还没有独立用户管理和系统日志页面。
Assumptions (temporary)
- “按顺序”优先遵循现有业务链和权限模型:借阅链路完成后,应补齐统计报表或管理后台缺口。
- 本轮应选择一个清晰、可验收的 MVP 模块,不把用户管理、报表、日志全部混在一次任务里。
Open Questions
- None for this MVP.
Requirements
- 继续沿用现有 Servlet -> Service -> DAO -> JSP 分层。
- 新增报表中心,面向拥有
view_reports权限的管理员和馆员。 - 报表中心应至少展示:
- 图书库存概览:总书目数、总册数、可借册数、不可借/归档或无可借库存的提示统计。
- 借阅概览:当前借出、已归还、已逾期数量。
- 逾期清单:展示读者、图书、应还日期、逾期天数等关键字段。
- 热门借阅排行:按借阅记录数量展示 Top 图书。
- 新页面入口应出现在 dashboard / role-home 的管理员和馆员工作区中。
- 新功能必须接入现有角色权限体系;读者不能访问报表中心。
- 新功能应包含 focused service checks,维持当前项目的轻量测试风格。
- 报表数据应基于现有
books、readers、borrow_records表,不引入新表。
Acceptance Criteria
- 明确下一步 MVP 模块:报表中心。
- 新模块有受权限保护的入口和页面。
- 新模块使用现有分层和错误处理风格。
- 管理员和馆员可打开报表中心,读者访问会被拒绝。
- 报表页面展示库存概览、借阅概览、逾期清单、热门借阅排行。
- 新增或更新服务层检查。
- Maven 构建通过(当前环境未安装
mvn,已用javacfallback 和轻量 checks 验证)。
Definition of Done (team quality bar)
- Tests added/updated where appropriate.
- Maven compile/package checks pass where available.
- Docs/notes updated if behavior changes.
- Rollout/rollback considered if risky.
Out of Scope (explicit)
- 暂不一次性实现用户管理和系统日志页面。
- 暂不实现图表库、导出 Excel/PDF、按日期筛选等高级报表能力。
- 暂不引入新框架或前后端分离。
- 暂不修改现有认证和核心借阅规则,除非所选模块必须依赖。
Technical Approach
Add a reports slice consistent with the existing architecture: entity/value objects for report summaries, DAO queries for aggregate data, a service facade for report composition and permission checks, a servlet mapped to /reports, and a JSP under WEB-INF/jsp/reports/. Reuse existing CSS patterns for compact dashboard cards and tables.
Decision (ADR-lite)
Context: The borrowing workflow is now implemented, and the permission model already contains view_reports.
Decision: Implement a server-rendered report center as the next MVP module, focused on operational summaries that can be derived from existing tables.
Consequences: This gives administrators and librarians immediate visibility into inventory and borrowing health without introducing reporting infrastructure. Date filters, exports, and charts remain future enhancements.
Technical Notes
README.md描述当前项目结构和本地部署方式。src/main/resources/db/schema.sql已有system_logs表、view_reports和view_system_logs权限。src/main/webapp/WEB-INF/web.xml当前未映射 reports、logs 或 users 管理 servlet。src/main/webapp/WEB-INF/jsp/dashboard.jsp和role-home.jsp是新增入口的主要位置。- 语义代码检索 MCP 返回 403 权限错误;本轮自动上下文改用本地只读文件检查。