Commit Graph
259 Commits
Author SHA1 Message Date
wangzhibiao 9030d797f4 合并分支:合并课程两步式向导与教学资源关联管理能力 2026-10-09 21:33:35 +08:00
wangzhibiao 0cfcdfb9cd 合并分支:合并开班主流程与报到机模拟能力 2026-10-09 21:31:38 +08:00
wangzhibiao 61c2b4b36c 修复安全:默认关闭Mock开关并强化报到机与打卡接口服务端鉴权与测试环境约束 2026-10-09 20:35:12 +08:00
wangzhibiao cecf11790e 新增报到机:实现终端扫码报到核验与受控课堂打卡模拟 2026-10-09 20:04:52 +08:00
dongjie 83d22ba5e0 新增培训:实现课程两步式向导与教学资源关联 2026-10-09 16:55:52 +08:00
wangzhibiao b1d5a999ca 修复数据映射:对齐住宿有效状态关系并修正课次考勤名册参数契约 2026-10-09 16:20:24 +08:00
wangzhibiao 1149c2b141 新增开班主流程:实现学校周课表展示、住宿状态直观外露及课次考勤闭环联动 2026-10-09 15:48:13 +08:00
wangzhibiao 55143af4a5 修复迁移:修正教学资源菜单ID为2270避免与历史教学成果菜单2165冲突 2026-10-09 14:44:54 +08:00
wangzhibiao 041bcef242 新增数据库:编制10-10试用集成主数据扩展与教学资源兼容迁移脚本 2026-10-09 14:36:27 +08:00
wangzhibiao a8e42b32bd 测试学员:适配学员端点修改契约断言以包含合法编辑端点 2026-10-09 14:34:15 +08:00
wangzhibiao 1d57bdf0df 测试学员:补齐学员单测桩updateTrainStudent方法实现以修复构建 2026-10-09 14:30:58 +08:00
wangzhibiao b93ac3fa71 合并发布:集成GitLab远端主数据扩展与教学资源基线 2026-10-09 14:29:26 +08:00
wangzhibiao 39f633528c 修复学员:适配学员端自服务参训状态字段映射(XR-12) 2026-10-09 14:28:58 +08:00
buliping c26ddbb262 验证码校验 2026-10-09 09:33:54 +08:00
buliping b78765c7ff 课程类型支持下拉选择,增加课程资源id关联 2026-10-09 09:13:51 +08:00
buliping abb042ff1a 增加课程资源管理,对应数据表train_resource 2026-10-08 11:14:20 +08:00
buliping 1162f26e7d 学员、教师查询条件完善 2026-09-29 15:44:34 +08:00
buliping 973cc0e7e3 实训场地管理增加属性:适用专业(添加+修改+查询条件+列表)+操作栏增加删除功能 2026-09-29 14:59:53 +08:00
buliping 0bf7d961ab 教室管理增加具备多媒体、投影属性(添加+修改+查询条件+列表) 2026-09-29 14:21:44 +08:00
buliping 9c720a2535 教师增加头像、专业、主讲课程、从教时间 2026-09-29 10:41:20 +08:00
buliping 2c14bf2b41 学员管理增加岗位级别 2026-09-29 10:13:47 +08:00
buliping 86c04320fd 增加学员头像上传 + 学员修改 2026-09-28 17:11:30 +08:00
buliping ad533c55fb 增加学员修改逻辑 2026-09-28 17:07:58 +08:00
buliping 9d6689569c 实训场地信息表增加2个字段:适应专业major,工位布局seat_arrange 2026-09-28 11:17:56 +08:00
buliping dd1dbcd17f 教室信息表增加3个字段:座位布局seat_arrange,是否具备多媒体multimedia,是否具备投影projector 2026-09-28 11:14:06 +08:00
buliping f97cb35b6f 教师信息表添加4个字段:头像地址avatar,所属专业major,主讲课程courses,从教时间start_teaching 2026-09-28 11:07:57 +08:00
buliping 989f549c5a 学员信息表添加2个字段:头像地址avatar,岗位级别duty_level 2026-09-28 11:03:15 +08:00
buliping 8ad3fbbc6e 教师、学员编辑时,所属单位改成从部门树中选择 2026-09-28 08:45:56 +08:00
buliping 8707aa8509 个人中心修改密码报错修复 2026-09-24 10:42:50 +08:00
wangzhibiao 2eeda1a7b7 文档演示:补齐交付状态报告中核心交付指标清单对照表 2026-09-24 02:22:15 +08:00
wangzhibiao d04d5eacb3 文档演示:编写客户现场演示业务剧本与全量验收交付报告 2026-09-24 02:21:31 +08:00
wangzhibiao 2fce871df7 修复前端:优化演示免验证码与凭据空值兼容性 2026-09-24 02:21:27 +08:00
wangzhibiao 7c0d86078b 新增演示:构建隔离演示环境全套SQL种子资产与系统元数据基线 2026-09-24 02:21:23 +08:00
wangzhibiao e9f468cefd 修复测试:补充分析服务单元测试桩的成绩统计方法实现 2026-09-24 01:29:01 +08:00
wangzhibiao 3a81cb3f0c 修复权限:纠正培训管理员住宿编辑权限并加固住宿删除权限隔离 2026-09-24 01:22:03 +08:00
wangzhibiao 6bdf84974b 修复一致性:完成成绩V2运行时闭环与API总账对齐 2026-09-24 01:15:04 +08:00
wangzhibiao b97622c1d1 文档维护:校准甲方DMS接口契约与后端物理调用链 2026-09-24 00:40:58 +08:00
wangzhibiao 86e07c35e3 文档维护:固化纯净库引导链与三维接口总账
1. 查明空库真正 Bootstrap Chain:明确以 ry_20250522.sql + quartz.sql + 000_phase05_exact_schema.sql 为前置基线;
2. 纠偏 API Inventory 统计指标:确立 107 个端点、0 重复,升级为读写分离物理表调用链 (100% 源码追踪);
3. 明确四类 API 边界:自研业务端点 107、平台端点 95、甲方端点 0、第三方端点 9、纯模拟端点 1;
4. 升级 Client API 状态模型:引入连通性、真实数据与可用性三维矩阵,实证 DMS 0 资源现状,将远程开门更正为 SECURITY_PROHIBITED;
5. 输出纯净演示数据库设计规约草案 (CLEAN_DEMO_DATABASE_SPEC.md)。
2026-09-24 00:18:15 +08:00
wangzhibiao 122a242dd0 文档维护:纠偏现行真理中心构建源与已闭环事实
1. 明确 build_ui/ 为前端唯一构建与部署真源,RuoYi-Vue/ruoyi-ui 标记为历史归档备份;
2. 标记 ACCOM-PERM-01 为 RESOLVED_2026-09-23 已彻底闭环,内部 P0 阻断项清零;
3. 对全量 104 项内部 API 端点完成源码级表追踪 (VERIFIED_FROM_SOURCE) 与 build_ui 视图引用验证;
4. 外部 Client API 矩阵全面引入最后验证时间、验证方式、证据源与实时响应四项证据字段;
5. 更新下一阶段标准化行动路线图为严格 16 步标准流。
2026-09-24 00:03:47 +08:00
wangzhibiao 8ad0f5172e 文档架构:建立唯一现行系统真理文档门户 (Current Truth Bootstrap)
docs: bootstrap canonical current truth portal (00-START-HERE through 08-NEXT-ACTIONS)
2026-09-23 23:50:37 +08:00
wangzhibiao 2f05f310ad 修复住宿:实现学员住宿安排分配UI流程及修复modal异常 2026-09-23 20:13:02 +08:00
wangzhibiao 62085e8a49 修复培训:支持逾期报到人工确认并修复学员选择器字段映射
fix(train): handle overdue report confirmation and student picker fields
2026-09-23 19:08:50 +08:00
wangzhibiao eb1ddfcaa8 修复住宿:床位重叠冲突返回标准化业务错误码 2026-09-23 15:29:03 +08:00
wangzhibiaoandCursor fb5834bb1e 修复能力:统一DMS禁用态门禁能力声明
capabilities 中 manualRevokeAvailable 此前硬编码为 true,在 dms.enabled=false 时
仍向用户表示真实外部门禁撤权可执行。

- manualRevokeAvailable 与 dms.enabled 保持一致
- 新增 localRevokeGovernanceAvailable 与 revokeMode,明确区分外部派发与本地排队治理,
  本地授权状态治理与安全补偿路径继续可用,撤权入口不被移除
- 前端门禁能力默认按外部通道不可用初始化,接口返回前不向用户承诺不存在的能力
- 门禁服务未启用时注销确认文案如实说明仅完成本地待注销登记

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:04:50 +08:00
wangzhibiaoandCursor b7a9b89ec5 完善考勤:支持未签到学员人工登记缺勤
名册中无任何打卡记录的已报到学员此前只能"先签到再改成缺勤",会留下伪造的签到事实。

- 新增 POST /train/attendance/mark-absence,权限 train:attendance:edit,带操作日志
- 写入 attendance_status=0、sign_in_time 与 sign_out_time 保持 NULL、manual_flag=1,
  缺勤原因必填,绝不伪造签到时间
- 前置条件全部 fail closed:课次已开始、与课次同属一个开班计划、
  参训状态必须恰好为已报到;请假不得被自动改写为缺勤
- 已有考勤记录时拒绝新建并引导改用调整考勤记录,
  并发命中唯一索引转为同一业务错误,不泄露数据库异常
- 名册新增 canMarkAbsence,前端直接采用后端判定,登记后可继续调整考勤记录
- 未改动出勤率统计口径与 Analytics 业务策略

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:04:41 +08:00
wangzhibiaoandCursor b7eab13a83 修复权限:首页按真实业务身份选择工作台
菜单层与 API 层已按真实业务身份限制,但首页只看 role_key,导致有 train_teacher
角色却无教师档案绑定的账号先进入教师工作台再被 API 拒绝。

- 身份服务新增 hasActiveTeacherIdentity / hasActiveStudentIdentity,
  语义与原菜单过滤完全一致,异常吞掉返回 false
- SysLoginController 抽出 resolveSelfServiceIdentity 作为唯一事实源,
  自服务菜单过滤与 getInfo 新增的 selfService 标志共用该方法,不新增第三套规则
- 前端 store 新增 selfService 标志,缺失时默认全 false 并严格布尔化,登出时重置
- 自服务路由过滤与首页渲染改为按身份标志判断,且与角色授权取交集,与菜单层口径一致
- 有角色无业务档案的账号落到普通首页,Dashboard 组件根本不创建,
  不会发起任何自服务 API 请求,页面给出明确的未绑定提示

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:04:26 +08:00
wangzhibiaoandCursor eb8ce6f85c 修复排课:停用教师禁止新排课并消除候选列表静默截断
停用教师仍出现在排课教师下拉且后端未校验 status;教师、教室、场地候选统一按
pageSize=100 拉取,数量超过 100 时会静默丢失合法候选。

- 后端在创建课次时强制校验目标教师在岗,修改课次仅在真的更换授课教师时校验,
  维持原教师不变的历史课次继续放行,既不自动删除课次也不自动替换教师
- 新增业务错误文案"该教师当前已停用,不能安排新的授课任务",不暴露内部状态码
- 新增只读端点 GET /train/lessons/scheduling-options 全量返回教师、教室、场地候选,
  不分页、服务端无条数上限;教师候选只返回在岗有效教师,且只下发下拉必需字段
- 前端排课面板改用该端点,编辑历史课次时为已停用的原教师补一条禁用选项,
  保证原教师名可见但不可被重新选中
- 排课冲突策略不变,仍为前端 Warning 加二次确认后允许保存

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:04:10 +08:00
wangzhibiaoandCursor dc3990b29a 修复门禁:退宿时正确进入授权撤销流程
退宿后 enrollment 仍为已报到但已无有效住宿,reconcile(enrollmentId) 只会返回
WAITING_FOR_PREREQUISITE,被退宿住宿对应的 train_dorm_auth 因此永远无法进入撤权状态。

- 编排器新增住宿关系终止撤权路径 revokeAuthorizationsForAccommodation,
  只针对被终止的那一条住宿记录,不改动 reconcile 整体对账语义
- 撤权全程复用既有安全机制:DMS 禁用态语义、CAS 原子 Claim、AMBIGUOUS 判定、
  禁止盲重发,绝不直接 UPDATE auth_status='REVOKED' 绕过状态机
- 已处于 REVOKED / REVOKING / PENDING_REVOKE 的授权直接跳过,避免重复排队
- 退宿改走该路径,撤权推进失败不回滚退宿事实
- 调房不受影响,仍保持新房授权生效后再撤旧房 (GRANT_NEW_THEN_REVOKE_OLD)
- 补充住宿终止撤权与住宿状态守卫单元测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:03:55 +08:00
wangzhibiaoandCursor aeb76ce35a 修复住宿:统一住宿生命周期状态与状态变更入口
住宿状态在数据库与业务上只有 0 预分配 / 1 已入住 / 2 已退宿三种,不存在 3 已调房。
调房是业务操作,真实语义为旧记录置退宿、新记录置在住,不应表现为独立状态值。

- 前端住宿页面移除筛选项与两处状态标签中的"已调房"(status=3),补齐历史表格缺失的预分配标签
- 后端通用 PUT /train/accommodation 封死 accommodation_status 写入路径,
  状态变更只能经办理入住、办理退宿、调房等专属业务操作
- 新增住宿状态白名单守卫,非法整数与新增即退宿一律拒绝入库

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:03:43 +08:00
wangzhibiao ecfd38be17 修复权限:隔离教师工作台与学员中心菜单自服务可见性 2026-09-22 11:59:38 +08:00