Commit Graph
70 Commits
Author SHA1 Message Date
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
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 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
wangzhibiao 2b1fcdb260 优化体验:统一业务状态与操作按钮文案 2026-09-22 10:47:36 +08:00
wangzhibiao 5871731edd 优化体验:清理管理端技术化与AI化文案 2026-09-22 10:47:30 +08:00
wangzhibiao 08b8abe778 测试考勤:覆盖参训状态签到守卫与真实前端策略 2026-09-22 00:05:56 +08:00
wangzhibiao e2c15e6216 修复考勤交互:对齐名册签到资格与参训状态展示 2026-09-22 00:05:31 +08:00
wangzhibiao 38d4851a18 测试考勤:覆盖首次签到与未签到展示 2026-09-21 23:21:35 +08:00
wangzhibiao dfd0133df0 前端考勤:补齐培训管理员课次签到入口 2026-09-21 23:21:31 +08:00
wangzhibiao 6d82478466 修复交互:补齐未签到状态展示与分析图例 2026-09-21 21:44:03 +08:00
wangzhibiao 62088a6209 修复交互:对齐参训状态与考勤操作可达性 2026-09-21 21:43:52 +08:00
wangzhibiao 481c998e82 测试门禁:覆盖失败提示与空响应重发保护 2026-09-21 16:56:06 +08:00
wangzhibiao 9922ae3aa4 修复前端:按真实门禁结果展示下发注销与对账状态 2026-09-21 16:55:57 +08:00
wangzhibiao a12b2e3543 修复前端:按真实门禁状态展示下发与注销结果 2026-09-21 14:57:46 +08:00
wangzhibiao 1c46efbcad 权限门禁:拆分凭据与硬件映射最小权限 2026-09-21 14:57:40 +08:00
wangzhibiao 0d5df72d8e 修复门禁:安全化凭据下发与有效期来源 2026-09-21 12:51:10 +08:00
wangzhibiao a83a3a642e 修复门禁:统一授权状态机与注销入口 2026-09-21 12:50:58 +08:00
wangzhibiao 3966ffed50 修复导航:校准驾驶舱业务提醒钻取路由 2026-09-21 00:14:44 +08:00
wangzhibiao 724fefbf35 修复前端:校准分析页面内部钻取路由 2026-09-20 22:34:52 +08:00
wangzhibiao de3fd00265 清理分析:下线旧成绩与时空分析残留入口 2026-09-20 20:36:45 +08:00
wangzhibiao 48e94aa889 优化学员:移除无真实依据的个人雷达评分展示 2026-09-20 20:36:40 +08:00
wangzhibiao 207491213b 新增画像:实现学员360客观画像 2026-09-20 20:36:37 +08:00
wangzhibiao d0ae543a4d 新增分析:实现考勤专题统计与异常排行 2026-09-20 20:36:33 +08:00
wangzhibiao f17526b409 新增分析:实现管理驾驶舱聚合接口与可视化 2026-09-20 20:36:30 +08:00
wangzhibiao 225f58481a 新增学员:支持零业务引用档案安全删除与引用保护 2026-09-20 16:16:58 +08:00
wangzhibiao 2dc22b06f8 新增教师:支持零业务引用档案安全删除与引用保护 2026-09-20 16:16:54 +08:00
wangzhibiao 3f0cbe3b16 优化界面:对齐课程教室住宿门禁成绩破坏性操作入口与对象名称提示 2026-09-20 15:09:30 +08:00
wangzhibiao b1433dcaa1 修复稳定化:接入考勤人工调整闭环并增加住宿与门禁历史删除防护 2026-09-20 14:09:45 +08:00
wangzhibiao 99cac94a5f 修复权限(前端路由):将敏感管理路由移至动态路由并对齐操作权限 2026-09-20 12:31:37 +08:00
wangzhibiao ca3f857d3c 持续集成:支持本地开发服务器代理自定义重写路径 2026-09-20 11:34:11 +08:00
wangzhibiao 01dfa9f386 优化展示:规范学员与教师性别转义及教师工作台培训班状态呈现 2026-09-20 11:34:09 +08:00
wangzhibiao f5b6339cf1 修复用户:增加重置时部门树空值保护并优化栅格布局 2026-09-20 11:34:07 +08:00
wangzhibiao dea668459d 修复菜单:修复侧边栏空白折叠项与无可见子项目录展示异常 2026-09-20 11:34:05 +08:00
wangzhibiao 0c380bdfdf 修复验收:修正最终验收证据问题 2026-09-17 10:21:34 +08:00
wangzhibiao 44481ab6d2 修复验收:解决教师端与学员端浏览器缺陷 2026-09-17 09:57:00 +08:00
wangzhibiao 85b3e7fcd4 新增门禁:支持 ADMIN_ONE_TIME_DISPLAY 临时凭证一次性安全展示与序列化 2026-09-16 23:22:02 +08:00
wangzhibiao 652c0c01e0 修复界面:修复前端组件依赖与构建规范,补全验证码与门禁住宿路由与页面 2026-09-16 23:21:29 +08:00
wangzhibiao 63f463d094 合并门禁:将R3门禁能力集成至一期综合验收
- 将QA数据库配置对齐至隔离库 railwaysystem_integrated_qa_20260916
2026-09-16 15:43:46 +08:00
wangzhibiao 758fd79e16 合并门禁:将DMS真实接口探测结果集成至质量验证基线 2026-09-16 15:31:49 +08:00
wangzhibiao d976fcfb4d 新增门禁:实现访问管理界面与Mock端到端测试 2026-09-16 11:43:58 +08:00
wangzhibiao c271c11b29 维护界面:更新系统展示名称 2026-09-16 10:19:51 +08:00
wangzhibiao d00d039ef5 新增权限:实现管理员账户绑定流程 2026-09-16 09:59:01 +08:00
wangzhibiao d8a963f611 新增权限:实现教师与学员自服务前端 2026-09-15 16:12:12 +08:00
wangzhibiao 6762189093 新增培训:完善报到与考勤V2业务操作 2026-09-15 09:46:14 +08:00
wangzhibiao bfccc46f73 修复培训:对齐旧统计分析能力与V2接口契约 2026-09-14 23:56:55 +08:00