Commit Graph

226 Commits

Author SHA1 Message Date
0ce8f58adb chore: remove dead code and tune frontend chunks
Remove unused production symbols, starter assets, and stale browser tooling; reduce frontend chunk fragmentation.
2026-07-23 01:26:41 +00:00
90cc321221 fix: UI improvements and DingTalk attendance refresh for completed sessions
All checks were successful
CI / check (pull_request) Successful in 1m33s
- DatePicker editors open immediately on double-click
- Student archive drawer hides empty studentNo parentheses
- Student add/edit form uses 2-column grid layout
- Table horizontal scrollbars show only on hover/focus
- Remove fake 近7日趋势 stats from attendance student detail
- Allow DingTalk refresh to update completed attendance sessions
  (late-arriving punches can now change absent → present)
- Switch dev command from concurrently to turbo run dev
- Remove concurrently/wait-on dependencies
2026-07-22 17:50:59 +08:00
6286864df0 修复学习记录实体未注册问题 2026-07-22 17:19:20 +08:00
a9009f86fb fix: 修正换宿当天查寝归属
All checks were successful
CI / check (pull_request) Successful in 3m8s
2026-07-22 15:18:12 +08:00
7ffc573d2e 修复 SQLite 钱包调账锁异常 2026-07-22 15:03:06 +08:00
393ee62168 feat: add Jinshuju student sync
All checks were successful
CI / check (pull_request) Successful in 2m14s
2026-07-22 11:41:50 +08:00
576dab0d41 fix: 修复测试文件日期比较逻辑
All checks were successful
CI / check (pull_request) Successful in 4m40s
2026-07-22 11:25:13 +08:00
da023759a1 fix: 修复后端 CI 检查与测试 2026-07-22 11:17:39 +08:00
54e283b687 feat: 增加宿舍查寝功能 2026-07-22 10:55:48 +08:00
cbc04fea4f feat: add exam score management
Some checks failed
CI 检查 / lint (pull_request) Has been cancelled
CI 检查 / typecheck (pull_request) Has been cancelled
CI 检查 / test (pull_request) Has been cancelled
2026-07-21 16:04:17 +08:00
37ef6f9dd7 feat: add college archive fields
Some checks failed
CI 检查 / lint (pull_request) Has been cancelled
CI 检查 / typecheck (pull_request) Has been cancelled
CI 检查 / test (pull_request) Has been cancelled
2026-07-21 15:35:35 +08:00
90cc0c10b2 feat: expand student archive import template 2026-07-21 15:11:52 +08:00
a9961d1a99 feat: 更新系统名称为学生管理系统,修改相关页面标题和生成的账单信息
Some checks failed
CI 检查 / lint (pull_request) Has been cancelled
CI 检查 / typecheck (pull_request) Has been cancelled
CI 检查 / test (pull_request) Has been cancelled
2026-07-21 10:32:21 +08:00
d306de48e4 修复:兼容 SQLite 开发环境启动 2026-07-21 09:57:19 +08:00
a87f26a915 feat: 移除 Docker 部署,添加 Gitea CI/CD workflows
- 删除 docker-compose.yml、Dockerfile、.dockerignore、docker/ 目录
- 更新 deploy.sh:移除 Docker Compose MySQL 启动,改为 systemd 检查
- 新增 .gitea/workflows/deploy.yml:手动触发、rsync + SSH + PM2 部署
- 新增 .gitea/workflows/ci.yml:PR lint + typecheck + test 自动检查
2026-07-20 15:33:46 +08:00
2c0be0f033 test: 为边界条件修复添加测试用例
- rooms: parseRoomNumber 未知格式、楼层0、capacity ?? 测试
- occupancies: capacity undefined/null/0 fail-closed 防守测试
- schedules: startTime > endTime 拒绝测试
- attendance: 重叠检查按时间排序、raw[index] 移除测试
- expenses: 金额零/负/NaN 拒绝、period反转校验测试

5 modules, 40 tests, all passing
2026-07-20 15:30:41 +08:00
00e9c5e45a fix: 修复多处边界条件问题
- rooms: parseRoomNumber 未知格式返回默认 capacity=4,防止 undefined 绕过入住容量检查
- rooms: 修复 parseInt() || undefined 导致楼层 0 被吞掉
- rooms: batchImport 中 capacity 使用 ?? 代替 ||,显式 0 不被覆盖
- occupancies: 所有 capacity 比较加 ?? 0 防守兜底,fail closed
- schedules: assertValidScheduleRange 增加 startTime > endTime 校验
- attendance: 时段重叠检查改为按 startTime 排序后再比较,消除漏检
- attendance: 移除 getScheduleOptionsForAttendance 中不可靠的 raw[index] fallback
- expenses: 个人附加费批量导入增加 assertPositiveAmount 校验
- expenses: 水电费导入增加 periodEnd >= periodStart 校验
2026-07-20 14:45:53 +08:00
990c0c16e6 feat: Docker Compose deployment + auto migration on startup
- docker-compose.yml: 移除 MySQL 容器,连宿主机 MySQL
- main.ts: 启动前通过独立 DataSource 执行 runMigrations
- migration-runner.ts: 独立 migration 执行器
- app.module.ts: TypeORM 配置增加 migrations
- 修复 InitialSchema 中 room_expenses 和 financial_operations 重复索引
2026-07-20 12:43:13 +08:00
4c2192d85e feat: switch to Docker Compose + auto-migration
- docker-compose.yml: 移除 MySQL 容器,后端连宿主机 MySQL
- main.ts: 启动时自动 runMigrations
- 前端 Nginx 反代 /api/ → backend:3000 不变
2026-07-20 12:24:51 +08:00
2ee8bd47e2 feat: add TypeORM CLI migration support
- 新增 datasource.ts 支持 mysql/sqlite 双模式
- 新增 migration 脚本: generate/create/run/revert/show
- 生成 InitialSchema migration (35 张表全量建表)
2026-07-20 12:16:48 +08:00
ed428c8aa3 fix: 修正档案报告品牌名 工学云 → 恭学教育 2026-07-20 11:59:51 +08:00
c7ba2799b9 feat: 拆分学号/身份证字段 + 考勤教师展示 + 代码优化
- 入住导入模板:学号和身份证号拆为独立字段,前后端对齐
- 排课查询关联教师,考勤归档页展示教师姓名
- 抽查时段增加 IsIn 校验
- 抽取 withPessimisticWriteLock 去重悲观锁查询
- import 增加文件空 buffer 校验
- 测试 mock 补全,适配事务 manager
- MySQL init.sql VALUES() 语法兼容修复
2026-07-20 11:54:01 +08:00
375c7ec60b feat: refine admin forms, attendance and finance workflows
Squash merge PR #23.

Included changes:
- complete occupancy check-in required fields/default payload
- improve responsive admin management pages
- fix attendance edge cases and attendance period config
- refine wallet/finance-related workflow handling

Checks:
- npm run typecheck -w apps/admin
- npm run typecheck -w apps/server
2026-07-18 12:54:10 +00:00
5836b421d8 fix: harden financial transaction boundaries 2026-07-18 15:33:41 +08:00
c11f6bb614 fix: harden DingTalk student synchronization 2026-07-18 14:51:53 +08:00
7edb4ff853 fix: prune unused RBAC permissions 2026-07-17 17:43:45 +08:00
b3d0bafc22 feat: refine deposit room type workflows 2026-07-17 17:36:04 +08:00
f7328d670d fix: 归档删除改为软删除 2026-07-17 14:13:17 +08:00
4fbcde48b1 test: update attendance service mocks 2026-07-16 11:01:24 +08:00
c93ac986aa Merge pull request '移除删除账号功能' (#15) 2026-07-16 02:55:22 +00:00
559b8a56e9 feat: add attendance device SN classroom bindings 2026-07-16 10:22:23 +08:00
d037787346 feat: support batch wallet balance changes 2026-07-16 10:22:23 +08:00
8ba51f48c0 fix: map expense type sort order column 2026-07-16 10:22:23 +08:00
7a62d8962a chore: update production deployment config 2026-07-16 10:21:40 +08:00
1737563516 移除删除账号功能 2026-07-16 10:16:56 +08:00
d582d641c0 feat: improve admin responsive pages and teacher candidates 2026-07-15 13:56:58 +08:00
8bd445df5a fix student import and profile labels 2026-07-15 10:52:43 +08:00
fcde6caaaa fix: defer attendance settlement until lesson end 2026-07-15 09:39:21 +08:00
b1f35f9d1a test: harden business boundary conditions 2026-07-15 00:03:55 +08:00
e45da7f998 feat: improve attendance scheduling and API validation 2026-07-14 23:12:14 +08:00
c75a08affe feat: add student wallet utility billing 2026-07-14 20:42:21 +08:00
598b4e8acd feat: link deposits to bill payment 2026-07-14 16:38:38 +08:00
eac336a54a fix: include contained room expenses in bill generation 2026-07-14 14:53:07 +08:00
ce5fd1c6cb fix: 修复批量更新账单状态功能 2026-07-14 14:24:19 +08:00
d84f37e98f feat: streamline occupancy check-in and imports 2026-07-14 12:23:53 +08:00
5cf6aede1e feat: improve occupancy import template 2026-07-14 11:20:41 +08:00
811e7ce826 feat: show DingTalk punch device details 2026-07-14 11:20:41 +08:00
a93ba657a8 fix: keep room capacity and beds consistent 2026-07-14 10:57:13 +08:00
e7aa202603 fix: 修改 PDFDocument 导入方式以符合 ES6 模块规范 2026-07-14 10:45:27 +08:00
xyx
ceb0e2bf14 fix: 添加默认床位生成逻辑并优化床位添加验证 2026-07-13 16:50:47 +08:00