import fs from 'node:fs';
import assert from 'node:assert/strict';
const dir='reports/bridge-content-authoring-20260924';
const read=file=>JSON.parse(fs.readFileSync(`${dir}/${file}.json`,'utf8'));
const ui=read('ui-result'),lan=read('ui-lan-result'),actions=read('actions-result'),integration=read('integration-result');
assert.ok(ui.pass&&lan.pass&&actions.pass&&integration.pass);
const escape=value=>String(value).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
const url=(stage,id)=>`http://127.0.0.1:6180/content/${stage}/${id}/production`;
const rows=integration.current.map(item=>`
${escape(item.taskCode)} ${escape(item.training.name)} | 机构模型 · ${escape(item.model.versionCode)} | 训练场景 · ${escape(item.scene.versionCode)} | 训练编排 · ${escape(item.training.versionCode)} | ${item.steps} 步 / ${item.actions} 动作 | 进入仿真 |
`).join('');
const panels=integration.current.map(item=>`${escape(item.training.name)}
${[['model','机构模型与动作库'],['action-'+(item.taskCode.endsWith('005')?'5':item.taskCode.endsWith('006')?'5':item.taskCode.endsWith('007')?'8':'36'),'部件操作动画'],['scene','场景组成与位置配置'],['training','背景与讲解编排']].map(([suffix,title])=>`
${title}`).join('')}
`).join('');
const checks=[...ui.checks,...lan.checks.map(x=>({...x,name:'局域网 1366×768 · '+x.stage})),...integration.checks];
const html=`005~008 内容制作全流程验收
4机构模型4训练场景38操作步骤98部件子动作5原任务快照未变
演示入口
登录数字车间后,从“内容制作 → 模型制作”进入对应机构模型,或打开下表链接。四套名称均采用实际训练名称。
| 训练内容 | 模型制作 | 场景制作 | 训练编排 | 规模 | 现有入口 |
${rows}
建议演示顺序
- 打开 005 机构模型,选择球阀或盒盖动作;调整旋转轴、方向、中心点、角度和时长,点击“播放动作”。
- 保存、刷新确认参数,再点击“发布并进入场景”。场景显示实际装备、环境和已绑定模型版本。
- 修改场景对象位置、旋转或缩放,应用预览;发布并进入编排。
- 查看对应步骤、模型动作和数字教员讲解,切到“背景与讲解”编辑图文或视频内容。
- 发布训练内容,再点击“虚拟仿真”查看原任务的背景、讲解和操作流程。
本次建立可保存、可发布的制作链。现有虚拟仿真继续使用固定静态脚本,新参数不会即时改写已发布任务。005 制作链使用已走通的新模型,原 005 与独立新模型入口都保留。
${panels}
笔记本与局域网
通过 192.168.31.168:6180 在 1366×768 验证,动作参数面板独立滚动,画布按可用宽度取景。
验证结果
Web 构建及后处理通过;25 项相关前端测试通过;Java 17 下 ut-tran 与依赖模块 package 通过,440 项测试无失败。
${checks.map(x=>`
✓ ${escape(x.name||x.task+' · '+x.stage)}
`).join('')}
98 个动作逐一验证目标存在、聚焦居中、变换有限;旋转/移动动作确实改变姿态,并检查暂停、恢复、取消动画及场景位置增量。少量目标沿用原有补充示意,页面明确标注来源。
构建仍有现有的大包体积提示,不影响通过。验收使用本地管理员业务账号、Edge headless、真实 API;内置浏览器当前不可用。变更未部署测试环境,也未提交推送。
页面验收 JSON · 局域网结果 · 98 个动作记录 · 四套版本依赖 · 服务健康检查
数据与回退
保留 4 个新模型、4 个新场景和 4 个原编排的内容版本。测试角度、场景位置已恢复。原任务 86、87、88、89、116 完整快照未改;备份位于本目录的 before-task-*.json 与 before-project-*.json。历史失败截图保留供排查,以上最终结果均已重跑通过。
后续部署需要更新 Web、ut-tran,并在目标环境登记业务工程。当前工程 ID 为本环境专用,不应直接当作另一环境的固定 ID。
`;
fs.writeFileSync(dir+'/index.html',html);
fs.writeFileSync(dir+'/README.md',`# 005~008 内容制作全流程\n\n打开 [验收报告](index.html) 查看入口、演示步骤和截图。\n\n已建立 4 个模型、4 个场景,关联 4 个编排;38 步、98 个动作。模型/场景/编排发布不更新现有教学任务。005 采用新模型制作,原任务与独立入口保留。\n\n验证:25 项前端测试、440 项后端测试、四套发布链、98 个动作和局域网 1366×768 页面通过。详细字段与回退说明见 API Wiki《41-桥梁内容制作关联》。\n`);
console.log(dir+'/index.html');