编辑 | blame | 历史 | 原始文档

HANDOFF:临抢修软件需求与第一版实现

交接日期:2026-08-25(2026-08-26 晚 / 2026-09-07 / 2026-09-08 / 2026-09-09 核对 / 2026-09-10 / 2026-09-11 / 2026-09-14 / 2026-09-16 / 2026-09-17 / 2026-09-28 新会话准备 / 2026-09-28 专业配置与故障编号自动生成 更新)| 用途:新开会话时先读本文件,即可无缝接续
项目目录:C:\Users\jcxiong\Documents\Codex\MyProject\EmergencyRepair

0. 最新交接(2026-09-28 新会话准备,优先阅读)

本节记录当前“第一版已落地代码”的最新状态,优先于下方较早的需求梳理和会话记录。
工作目录:D:\Codex\MyProject\EmergencyRepair;Git 仓库:http://admin@61.183.254.94:3000/r/EmergencyRepair.git,默认分支 main。

0.1 当前运行状态

  • 前端:Vue 2 + Element UI,开发地址 http://localhost:8082,最后运行进程示例 PID 30224;2026-09-20 下班关机时已停止;2026-09-28 再次启动,监听 PID 示例 22092(用内置 Node 24 运行 vue-cli-service serve)。
  • 前端启动命令:node C:/Users/jcxiong/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node.exe node_modules/@vue/cli-service/bin/vue-cli-service.js serve;生产构建把 serve 换成 build。
  • 后端:Spring Boot 2.7 + JDK 8 + MyBatis-Plus 3.5.3 + DM8,地址 http://127.0.0.1:8091,最后运行进程示例 PID 17712;2026-09-20 下班关机时已停止;2026-09-28 再次启动,监听 PID 示例 31836。
  • 登录:admin / admin123。
  • 前端源码目录:emergency-repair-web。
  • 后端源码目录:emergency-repair-server。
  • 后端后台启动方式:WScript.Shell 隐藏启动 mvn -q spring-boot:run,输出重定向到项目根 backend.log。
  • 前端和后端开发服务当前都已停止;最近一次生产构建输出在 emergency-repair-web\dist。
  • 最近验证:mvn -q -DskipTests package 通过;npm run build 通过,仅有既有 webpack 包体积警告。
  • 2026-09-20 12:00 派单端到端核对:临时故障经上报、XCB审核、CMB/JCC三级审批后,两个承修单位生成 故障编号/01、故障编号/02 两张派工单;派单后不再出现在未派单列表。测试记录已从 LX.T_FAULT、LX.T_WORK_ORDER 及相关表清理,故障总数恢复为 16。
  • 用户已确认本轮结果验收通过(2026-09-20):多装备选择、故障上报分页及 XCB助理派单编号规则通过验收。
  • 新会话开始前先确认 8082/8091 是否仍在监听;若不在,再按下方命令重启。

0.2 最近完成并已验证的功能

维修 Logo

  • 文件:emergency-repair-web\src\components\RepairLogo.vue。
  • 当前是扳手与螺丝刀内联 SVG 组合,不是字母文字;保持抽象地略带 LX 联想。
  • 页头接入:AppHeader.vue;登录页接入:Login.vue。
  • 用户要求后的最终尺寸:页头图标 25px,并 transform: translateY(2px) 向下微调;登录页 44px。
  • Logo 固有比例:width: 1.30em; height: 1.03em。

故障上报支持多个装备

  • 现状从“单装备”升级为“一个故障可关联多台产品结构树设备”。
  • 前端文件:emergency-repair-web\src\views\fault\FaultReport.vue。
  • 多选组件:emergency-repair-web\src\components\ProductTreePicker.vue。
  • 产品结构树改为复选框多选,仅设备节点可选。
  • 同一故障只能选择同一个 X号 下的设备;勾选不同 X号 设备时立即取消该次勾选并提示,确认时保留兜底校验。
  • 表单保存时:
  • equipmentIds:逗号分隔的全部产品结构树设备 ID。
  • equipmentId:首个设备 ID,保留兼容。
  • equipmentName:多设备名称用中文顿号连接,例如“主推进装置、主配电装置”。
  • parentSystem:多个上级系统用中文分号连接。
  • 数据库变更:
  • LX.T_FAULT 新增 EQUIPMENT_IDS VARCHAR(2000)。
  • 自动迁移在 DatabaseBootstrap.java,方法 ensureColumn(...)。
  • Fault.java 已增加 @TableField("EQUIPMENT_IDS")。
  • 后端保存逻辑在 BusinessService.normalizeEquipmentIds(Fault fault):
  • 去重。
  • 回写 EQUIPMENT_IDS。
  • 将首项写回 EQUIPMENT_ID。
  • 派工单仍使用原 EQUIPMENT_NAME 字段,因此派工单显示的是故障的全部合并装备名称,不需要新增派工单表字段。
  • “故障高发设备 Top”已按每个关联装备分别统计:
  • 通过 EQUIPMENT_IDS -> 产品结构树设备 -> BASE_EQUIPMENT_ID -> 设备基础库设备 归集。
  • 同一故障涉及两台设备时,两台设备各计一次。
  • 不同 X号设备实例关联同一设备基础库设备时仍合并统计。
  • 演示数据:
  • GZ-2026-001 已变为 X01 / 主推进装置、主配电装置 两台设备。
  • DataInitializer.upgradeDemoMultiEquipmentFault() 会在启动时幂等更新该演示数据。
  • 已验证:
  • API 创建临时多装备故障成功,保存后 equipmentIds 为两个 ID、名称为两设备合并名称。
  • 临时测试数据已删除。
  • Top 接口验证时“主推进装置”“主配电装置”均能正常计数。

故障上报分页

  • 页面:FaultReport.vue 已改为服务端分页。
  • 默认每页 20 条,可选 20 / 50 / 100。
  • 查询条件:故障编号、X号、装备名称、任务状态。
  • 查询、重置、切换每页条数时自动回到第一页。
  • 当前页删除到无数据时,会自动回退上一页。
  • “导出”仍导出当前筛选条件下的全部故障,不是只导出当前页。
  • 后端新增接口:
  • GET /api/faults/page?current=1&size=20&status=&keyword=
  • 返回 MyBatis-Plus Page<Fault>,字段包含 records/current/size/total/pages。
  • 原接口 GET /api/faults 保持返回列表,供审批、派单、导出使用。
  • 分页插件早已在 MyBatisPlusConfig.java 配置:PaginationInnerInterceptor(DbType.DM)。
  • 已验证:DM8 当前 16 条故障,请求 current=1&size=5 返回 5 条、总 16 条、共 4 页。

故障上报查询筛选

  • 页面:emergency-repair-web\src\views\fault\FaultReport.vue 已补齐 AXU3 查询条件:X号、T队专业、工程专业、上报单位、负责人、上报日期起止。
  • 保留任务状态和关键字查询;查询、重置、刷新行为已接入服务端分页。
  • 后端:/api/faults/page 和 /api/faults 均支持上述筛选参数;导出复用同一组筛选条件,导出的是当前筛选结果而不是全部数据。
  • 参数:xNo、teamMajor、engineeringMajor、reportUnit、owner、reportDateStart、reportDateEnd。
  • 工程专业下拉值已与演示数据统一为 动力专业 / 电气专业 / 液压专业 / 辅机专业,修复了原表单选项与业务数据不一致的问题。
  • 已验证:单个条件和组合条件过滤结果正确;组合条件在分页接口和导出列表接口返回一致。页面实际打开后上述筛选控件均可见。
  • X号筛选项已改为下拉,选项从 /api/system/tree?type=product 的产品结构树节点实时读取,当前为 X01/X02/X03。
  • 上报日期范围控件加宽并固定“至”分隔符最小宽度,避免只显示一半。
  • 关键字框 placeholder 已统一为“故障编号/装备名称/工程名称及损坏情况”;关键字实际映射 FAULT_CODE、EQUIPMENT_NAME、ENGINEERING_NAME_DESC;X号不再参与关键字查询,使用独立X号下拉筛选。
  • “工程名称及损坏情况”字段统一为 ENGINEERING_NAME_DESC / engineeringNameDesc;启动时幂等迁移 T_FAULT.FAULT_DESCRIPTION -> ENGINEERING_NAME_DESC。完工信息的“故障说明”仍使用 FAULT_DESCRIPTION,未改动。
  • 故障上报一览列顺序已调整:工程名称及损坏情况、修理技术要求 位于 所属上级系统 与 工程专业 之间;补齐 重大故障描述、是否自修、是否涉H、监测数值。
  • 是否自修、是否涉H、监测项目 均显示“是/否”;全前端“要求完工时间”已统一改为“要求完工日期”。
  • 故障上报一览所有表头居中;故障性质、是否自修、是否涉H、监测项目、上报日期、要求完工日期 单元格居中,其余字段保持默认左对齐。
  • 用户已于 2026-09-20 对故障上报一览的字段补齐、列顺序和居中对齐调整验收通过。

新增故障表单调整

  • FaultReport.vue 新增/修改表单中的 X号 已改为可筛选的 el-select,选项复用页面从 /api/system/tree?type=product 加载的 xNumbers。
  • 删除了表单重复的文本字段 监测项目;保留 是否监测项目 开关和受其控制的 监测数值 输入框。
  • 上报单位已改为自动获取登录用户所属部门。AuthController 的 /api/auth/login 与 /api/auth/me 新增返回 deptName,通过 LX.SYS_USER 关联 LX.SYS_DEPT 查询;Login.vue 将其写入 sessionStorage.deptName,FaultReport.vue 的 blankForm() 用它初始化 reportUnit。未找到部门时返回空字符串,原 T01队 硬编码已删除。
  • 是否监测项目 与 监测数值 单独占用一行,前者占 el-col-8,后者占 el-col-16,避免受前一行的栅格累计宽度影响而换行。
  • 装备名称占位符已改为“点击右侧按钮从产品结构树选设备,可多选”。
  • ProductTreePicker.vue 改为固定位置的弹窗:使用 lock-scroll + top=4vh + flex 高度布局,树节点区域单独滚动;底部“已选择 nn 台设备”和按钮固定,已选设备列表以可关闭 el-tag 展示,点击关闭图标即取消该设备。
  • 产品树/设备基础库接口的 id、parentId 和 baseEquipmentId 已按字符串返回,避免雪花 ID 超过 JavaScript 安全整数范围后在树内回查时串到错误的 X号。
  • 表单“所属上级系统”已加宽为 el-col-16,并根据节点级别显式排除型号根节点和 X号;多设备选择后只显示各设备 X号以下的系统路径,统一使用中文顿号连接。新保存值和历史 T_FAULT / T_WORK_ORDER 中的分号也会由后端幂等归一化为顿号。
  • 打开产品结构树时会将表单当前 X号传给选择组件;如果 X号已选择,则树数据仅保留该 X号节点及其下级设备,其他 X号不显示、不可选。未选择 X号时仍保持原有多选和同 X号校验逻辑。
  • 新增/修改故障表单顺序调整为“工程名称及损坏情况、修理技术要求、故障影响、故障性质、是否自修”;是否涉H、是否监测项目、监测数值位于同一行并各占 el-col-8。
  • 修复 X号无法保存:Java getXNo() 默认被 Jackson 映射为 xno,与前端 xNo 不一致。Fault、WorkOrder、Acceptance、CompletionInfo 已显式添加 @JsonProperty("xNo")。启动时还会根据已有 equipmentId 回填历史空 X号;此前页面测试产生的空 X号故障已补回 X01。
  • 修复修改故障误报“故障编号已存在”:雪花 ID 超过 JavaScript 安全整数范围,原响应中的数字 ID 会舍入,导致 PUT 使用错误记录 ID。所有实体中的 Long ID 及关联 ID 字段已用 @JsonSerialize(using = ToStringSerializer.class) 按字符串返回;页面修改 xxx–001/A–0920–001、X号保持 X01 后保存已成功。
  • XCB助理审核、CMB领导审批、JCC助理审批、JCC处长审批四张列表已统一采用故障上报的完整列顺序、列宽、是否字段显示和表头居中样式;审批页在统一列之后保留“承修单位”补充列。
  • XCB助理审核页已补齐筛选条件:X号、T队专业、工程专业、上报单位、负责人、上报日期起止、承修单位、故障性质、任务状态。操作栏提供“审核”“修改”“销项”:修改使用共享 FaultEditDialog.vue,销项填写理由后调用 /api/faults/cancel。
  • 修改规则:UNREPORTED、REPORTED_XCB、RETURNED 状态允许由XCB助理修改;销项规则:仅 REPORTED_XCB、RETURNED 状态允许销项,写回销项理由、销项人、销项时间,任务状态改为 CANCELLED。

故障编号与 X号列宽

  • 用户给出的故障编号形态示例:xxx–001/A–1224–001。
  • 全业务列表统一调整:
  • “故障编号”列宽 130 -> 180。
  • “X号”列宽 80/90 -> 64(X号为3位数字)。
  • 已覆盖:
  • 故障上报
  • XCB助理审核
  • CMB/JCC 三张审批页
  • XCB助理派单
  • 完工情况处理
  • 验收申请列表
  • 首页列表
  • 多装备名称列已加宽到 210 并增加 show-overflow-tooltip。

其他近期已落地页面调整

  • 长菜单恢复叶子默认图标与原缩进,保留自动换行和横向溢出兜底。
  • 菜单名称为“故障数/备品备件消耗年度趋势”,图例为“备品备件消耗”。
  • 图表标题右侧“基于当前业务库实时汇总”已删除。
  • 统计报表数据是数据库实时查询,不是前端静态数据。
  • 年度趋势根据业务数据中实际出现的近3年自动汇总。
  • 敏感词流程:正常构建并部署后,在生产环境直接修改已部署的 dist/sensitive-words.json,不重新打包。
  • 当前敏感词运行时替换已覆盖普通文本、placeholder、title、aria-label 和动态 DOM。

敏感词替换性能评估(2026-09-20,未改代码)

  • 当前实现是在页面挂载后加载 sensitive-words.json,用 TreeWalker 全量遍历文本节点,并替换 placeholder、title、aria-label 属性,再通过 MutationObserver 监听 document.body 的新增节点和 characterData 变化。
  • 初始成本近似为 O((文本节点数 + 属性节点数) × 字典项数);动态内容会按新增子树或变化文本节点再次扫描。页面规模大、字典项多或 DOM 高频刷新时,可能出现主线程卡顿和重复无操作扫描。
  • 当前普通 CRUD 页面有分页,统计页面也已改为数据库端聚合,按现有页面规模一般可接受;需要警惕的是大数据表格、虚拟列表、实时日志和高频数值刷新场景。
  • 后续优化优先级:缓存并合并正则规则、批量合并 MutationObserver 通知、替换期间暂停 observer、跳过无目标节点;如果页面规模继续增长,改为表格 formatter、统一显示函数或虚拟滚动,不再全量扫描 DOM。

统计模块 Report Mapper 重构

  • 五个统计接口 /api/reports/overview、/api/reports/top-equipment、/api/reports/by-team、/api/reports/contractors、/api/reports/yearly-trend 已从 BusinessService 的整表加载 + JVM 聚合迁移到独立 ReportMapper + ReportMapper.xml + report DTO;接口 URL、返回结构和前端页面字段保持不变。
  • 新增文件:business/mapper/ReportMapper.java、business/service/ReportService.java、business/dto/report/*、resources/mapper/ReportMapper.xml。ReportController 改为注入 ReportService。
  • 统计 SQL 使用 DM8 CTE、GROUP BY、COUNT、SUM、UNION 等数据库端聚合。topEquipment 保留 EQUIPMENT_IDS 与历史 EQUIPMENT_NAME 兼容口径;byTeam 和 yearlyTrend 的备品备件消耗改为汇总 T_COMPLETION_INFO.CONSUMABLE_COUNT,不再循环 selectById。
  • DatabaseBootstrap 启动时幂等补 T_COMPLETION_INFO.CONSUMABLE_COUNT,并新增 IX_T_WORK_ORDER_FAULT_ID、IX_T_COMPLETION_WORK_ORDER 索引;DataInitializer 回填历史完工记录的消耗数量;BusinessService.submitCompletion(...) 同步写入该值。
  • 验证:mvn -q -DskipTests package 通过;五个统计接口全部返回 code=200,重构前后的关键统计值一致。

0.3 关键后端文件

  • emergency-repair-server\src\main\java\com\emergencyrepair\bootstrap\DatabaseBootstrap.java
  • 建 schema、建表、幂等加字段、索引。
  • emergency-repair-server\src\main\java\com\emergencyrepair\bootstrap\DataInitializer.java
  • 菜单、角色、演示数据、设备树、装备 ID 回填、多装备演示故障。
  • emergency-repair-server\src\main\java\com\emergencyrepair\business\entity\Fault.java
  • 故障实体,含 EQUIPMENT_IDS。
  • emergency-repair-server\src\main\java\com\emergencyrepair\business\controller\FaultController.java
  • /api/faults 和 /api/faults/page。
  • emergency-repair-server\src\main\java\com\emergencyrepair\business\service\BusinessService.java
  • 故障保存、多装备标准化、分页、审批、派单、完工、验收;已移除统计报表的整表加载和内存聚合。
  • emergency-repair-server\src\main\java\com\emergencyrepair\business\controller\ReportController.java
  • emergency-repair-server\src\main\java\com\emergencyrepair\business\service\ReportService.java
  • emergency-repair-server\src\main\java\com\emergencyrepair\business\mapper\ReportMapper.java
  • emergency-repair-server\src\main\resources\mapper\ReportMapper.xml
  • 五个统计接口和 DTO 结果映射。
  • emergency-repair-server\src\main\java\com\emergencyrepair\config\MyBatisPlusConfig.java
  • DM8 分页插件。

0.4 关键前端文件

  • emergency-repair-web\src\views\fault\FaultReport.vue
  • 多装备选择、服务端分页、导出全部筛选结果。
  • emergency-repair-web\src\components\ProductTreePicker.vue
  • 产品结构树设备多选,限制同一 X号。
  • emergency-repair-web\src\components\RepairLogo.vue
  • 扳手 + 螺丝刀 Logo。
  • emergency-repair-web\src\components\AppHeader.vue
  • 页头 Logo 尺寸和对齐。
  • emergency-repair-web\src\views\Login.vue
  • 登录页 Logo。
  • emergency-repair-web\src\views\fault\XcbReview.vue
  • emergency-repair-web\src\views\fault\DispatchPage.vue
  • emergency-repair-web\src\views\fault\SimpleApproval.vue
  • emergency-repair-web\src\views\completion\CompletionList.vue
  • emergency-repair-web\src\views\acceptance\AcceptanceList.vue
  • emergency-repair-web\src\views\Dashboard.vue

0.5 构建与重启命令

前端构建:

cd D:\Codex\MyProject\EmergencyRepair\emergency-repair-web
npm run build

后端构建:

cd D:\Codex\MyProject\EmergencyRepair\emergency-repair-server
mvn -q -DskipTests package

后端重启时不要只杀单个 Java PID:

  1. 先通过 Get-NetTCPConnection -LocalPort 8091 -State Listen 找到监听 PID。
  2. 向上追溯 mvn/java/cmd/powershell 的完整进程树。
  3. 停止整棵旧进程树。
  4. 用 WScript.Shell 隐藏启动:
$ws = New-Object -ComObject WScript.Shell
$cmd = 'powershell.exe -NoProfile -Command "Set-Location ''D:\Codex\MyProject\EmergencyRepair\emergency-repair-server''; & ''D:\maven\apache-maven-3.6.1\bin\mvn.cmd'' -q spring-boot:run *> ''D:\Codex\MyProject\EmergencyRepair\backend.log'' 2>&1"'
$ws.Run($cmd, 0, $false)
  1. 等待 8091 再次监听,再用 API 验证,不要只看日志文件是否存在。

0.6 本轮验证记录

  • 后端 Maven 编译通过。
  • 前端生产构建通过。
  • 多装备创建接口通过,保存两个 EQUIPMENT_IDS。
  • GZ-2026-001 当前为两个装备。
  • Top 统计已按设备基础库归集。
  • 分页接口返回 total=16、size=5、pages=4、records=5。
  • 派单接口端到端核对通过:一个故障分配两个承修单位时,按承修单位生成两张派工单,编号分别为 故障编号/01、故障编号/02;核对使用临时数据并已清理。
  • API 字段改名核验:故障列表返回 engineeringNameDesc,不再返回 faultDescription;DM8 实际列为 ENGINEERING_NAME_DESC。
  • 关键字查询核验:按“工程名称及损坏情况”命中 1 条,关键字 X02 返回 0 条;页面占位符、X号下拉(X01/X02/X03)和“至”分隔符显示正常。
  • 故障上报一览浏览器核验:表头顺序正确,新增字段可见,监测项目为“是/否”,监测数值独立显示,表头为“要求完工日期”。
  • 对齐核验:所有列表头计算样式均为 center;故障性质、是否自修、是否涉H、监测项目、上报日期、要求完工日期六列单元格为 center,工程名称及损坏情况、备注 等保持 left。
  • 2026-09-20 下班收尾后,前后端服务均已停止;当前使用前先按 0.5 启动。
  • 上报单位默认值核验:admin 在 DM8 中的 DEPT_ID 无匹配 SYS_DEPT 记录,/api/auth/login 和 /api/auth/me 返回 deptName="",页面上报单位为空。

  • 新增故障表单浏览器核验:X号 为 el-select,是否监测项目 为 el-col-8、监测数值 为 el-col-16 且同行,装备名称占位符正确。
  • 产品树弹窗核验:树区域 scrollHeight=1130、clientHeight=403,可独立滚动;底部已选设备与按钮位置固定;选中两台设备后可通过 el-tag 关闭图标删除其一。
  • XCB助理审核页浏览器核验:X号、T队专业、工程专业、上报单位、负责人、上报日期、承修单位、故障性质、任务状态筛选控件均可见;“修改”“销项”按钮均存在,选中记录后启用。
  • XCB助理审核修改核验:选中 xxx–001/A–0920–001 打开修改弹窗,字段完整,保存返回“保存成功”,弹窗 display:none 且实际不可见。
  • XCB助理审核销项核验:销项按钮可打开理由弹窗;临时故障经创建、上报、销项后状态为 CANCELLED,销项理由/销项人/销项时间均正确写回;临时记录已从 LX.T_FAULT 清理。
  • 统计模块回归:overview 返回工程总数 17、重大故障 4、涉H 5、监测项目 17、未完工 2、已完工 6、完工待试验 1、销项 0;top-equipment、by-team、contractors、yearly-trend 均返回 code=200,关键指标与重构前一致。
  • 统计 SQL 已不再把 T_FAULT、T_WORK_ORDER、T_COMPLETION_INFO 全表加载到 JVM;CONSUMABLE_COUNT 历史回填核验为 6 条完工信息、缺失 0 条、数量合计 12。
  • 2026-09-20 下班收尾:已停止前端 8082、后端 8091 及其完整进程树,两个端口当前均无监听;下次按 0.5 构建与重启命令 重新启动。

0.7 新对话接续建议

  1. 先读本节,再按需查看下方历史需求记录。
  2. 需要运行页面时,先按 0.5 启动前后端服务,再打开 http://localhost:8082,用 admin / admin123 登录。
  3. 重点检查故障上报页面:
  • 多装备多选是否符合交互预期。
  • 同一 X号限制是否需要放宽。
  • 分页、跳页、每页条数、导出行为是否符合预期。
  1. 若不满意,优先只改:
  • FaultReport.vue
  • ProductTreePicker.vue
  • BusinessService.java
  • FaultController.java
  1. 当前未发现阻断性错误;用户已于 2026-09-20 确认多装备和分页的最终界面效果验收通过。
  2. 不要回滚已有修改;不要执行破坏性 Git 命令;项目不是 Git 仓库。

0.8 新会话接续摘要(2026-09-28)

  • 新会话先读本文件第 0 节,再按需查看 requirement\决策表_待确认项.md 的 B/C 组;不需要重新做历史需求梳理。
  • 当前项目文件已落盘,无临时状态;前端 8082、后端 8091 均未运行。需要联调时先按 0.5 启动。
  • 已完成并验证:多装备故障、故障上报筛选分页、XCB审核及审批链、XCB助理派单、完工/验收基础流程、系统管理页面、统计模块独立 ReportMapper + ReportMapper.xml + DTO 重构。
  • 当前主要待确认:AXU14 操作角色和状态按钮条件;完工验收各环节角色、打印行为、评级与 T员评分关系;状态机首页统计口径;系统管理字段和权限;统计报表 Top N/周期/口径/导出;字典值;AXU15 字段来源;无截图模块;器材系统对接文档。
  • 2026-09-28 已确认 B1-B4:派工单“完工”与首页“已完工”同一统计状态;两处“完工待试验”口径一致;“待备件”允许直接“完工”;“完工待试验”试验不通过回“未完工”,不新增“返工”状态。
  • 下一批待确认:B6-B10;随后处理 C1、C6、C9-C11、C21、C23、C25、C27。
  • 推荐新会话入口:若继续开发,先启动服务并优先处理 AXU14/验收链;若继续需求确认,按 B/C 组未关闭项继续,可只回复 B6=...、C10=... 等结论。

0.9 本机工作约束

  • apply_patch 在本机不可靠,已有约定是使用 Python io.open(...) 读改写,并验证替换生效。
  • 不用 Start-Process / ProcessStartInfo,后台启动用 WScript.Shell。
  • 数据库大小写敏感,业务 schema 为 LX,表名和字段名统一大写。
  • SYS_DEPT、SYS_USER 通过 LX 同义词访问 CSICZB_ZB 下同名表。
  • 不在模型上下文直接塞图片/视频;需要视觉信息时先用本地 OCR 或小范围检查。

0.10 2026-09-28 专业配置与故障编号自动生成(本次会话,已实现并验证)

用户本次给出的 4 条新需求:① 系统管理增加“工程专业配置”(字段仅名称);② 系统管理增加“T队专业配置”(字段名称、分类 A/B);③ 故障编号不再手工输入,改为按 潜1基-X号/A-YYMMDD-nnn 自动生成;④ 派单号为 故障编号/nn,承修单位序号从 01 起。

已实现:
- “工程专业配置”:菜单 /system/engineering-majors,字段仅“名称”;表 LX.T_ENGINEERING_MAJOR(ID, NAME, CREATE_TIME, UPDATE_TIME);接口 /api/system/engineering-majors(GET/POST/PUT/DELETE)。
- “T队专业配置”:菜单 /system/team-majors,字段“名称、分类(A/B)”;表 LX.T_TEAM_MAJOR(ID, NAME, CATEGORY, CREATE_TIME, UPDATE_TIME);接口 /api/system/team-majors(GET/POST/PUT/DELETE)。
- 两处配置均校验名称非空与重名;T队专业分类只允许 A/B。启动时 DataInitializer.ensureMajorConfigMenus 幂等补菜单,seedMajors 预置演示数据:工程专业 动力/电气/液压/辅机;T队专业 动力=A、液压=A、电气=B、辅机=B(默认拆分,可在页面修改)。
- 故障编号自动生成:BusinessService.generateFaultCode,格式 潜1基-X号/分类-YYMMDD-nnn。
- 前缀固定 潜1基-;X号取 3 位数字(X01 → 001)。
- 分类取“T队专业配置”的 A/B;未配置或分类非法时保存报错并提示先行维护。
- YYMMDD 取上报日期;nnn 为“同一 X号 + 同一 T队专业 + 同一上报日期”的序号,从 001 起。
- 新建自动生成;修改时强制沿用原编号(改 T队专业/日期也不重新生成)。
- 生成使用 JVM 内锁 + LX.T_FAULT.FAULT_CODE 唯一索引兜底。
- 前端“故障编号”改为只读,新建时占位“保存后自动生成”;故障上报、修改弹窗、XCB助理审核的“T队专业 / 工程专业”下拉全部改为读取配置接口,删除前端硬编码数组。
- 派单号规则保持 故障编号/nn(BusinessService.dispatch),无需改动。
- 故障上报查询栏微调(2026-09-28 追加):任务状态 标签与下拉框被折行拆开,已在标签前加 .filter-break 强制换行,二者同处新的一行;同时把该栏错别字 工程X号专业 修正为 工程专业。
- 顺带修复 emergency-web/src/utils/sensitive.js(实际路径 emergency-repair-web/src/utils/sensitive.js):replaceAttributes 收到 MutationObserver 上报的注释节点时抛 root.querySelectorAll is not a function,已加节点类型守卫,动态渲染不再报错。

验证(2026-09-28):
- 后端 mvn -q -DskipTests package 通过;前端 vue-cli-service build 通过(仅既有包体积提示)。
- 接口:工程专业、T队专业各返回 4 条;/api/system/menu/nav 系统管理下新增两项(排序 35/36)。
- 自动编号:X02 + 动力专业(A) + 2026-09-28 → 潜1基-002/A-260928-001、潜1基-002/A-260928-002;换 T队专业(电气 B)→ 潜1基-002/B-260928-001;换上报日期 → 潜1基-001/A-260929-001;修改故障改 T队专业后编号保持不变。
- 派单端到端:一条故障分配两个承修单位,生成 潜1基-002/B-260928-001/01、.../02。测试数据已从 LX.T_FAULT、LX.T_WORK_ORDER 清理。
- 浏览器:两个新配置页正常渲染;故障上报新增表单“故障编号”只读且占位“保存后自动生成”,T队专业/工程专业下拉为配置项;修复后控制台无新增报错。
- 历史演示故障仍使用 GZ-2026-0xx 旧编号(未迁移,避免影响已派工单引用);新建故障一律使用新规则。
- 文档已同步:requirement\决策表_待确认项.md、前44页需求梳理.md、工程状态机设计.md、界面还原.html,以及首页公告“派单规则”文案。

0.11 2026-09-28 完工信息上报页面调整(AXU15,已实现并验证)

用户提出的 4 条调整:
1. 把“修后质量情况”移入“基础信息”,占 1 整行(el-col :span="24",textarea)。
2. 把“项目名称”移到“验收方式”同一行(各 el-col :span="8");“故障说明”“原因分析”各自独占 1 整行(el-col :span="24",textarea,与“修后质量情况”一致)。
3. “处理解决情况”改为与“维修器材”相同的多行表格(可“添加一行”/删除),列=序号(自动)、处理解决情况。
4. “维修器材 / 元器件消耗情况”列改为:序号、名称、规格型号、技术参数、数量、计量单位、合格证明、出库单号、来源、备注(另加“操作”删除列)。

实现要点:
- 前端 emergency-repair-web/src/views/completion/CompletionReport.vue:基础信息新增 4 个字段;“修理情况”section 改为独立的“处理解决情况”section(表格式,form.solutions);器材表按新列序重排,新增 certificate(合格证明)。
- 后端 Requests.MaterialItem 增加 certificate 字段;Requests.CompletionRequest 增加 solutions 列表(SolutionItem { content }),保留原 solution 字段兼容旧调用。
- LX.T_COMPLETION_INFO 新增 SOLUTIONS_JSON CLOB(DatabaseBootstrap.ensureColumn 幂等迁移,同时加入建表 DDL);CompletionInfo 增加 solutionsJson。
- BusinessService.submitCompletion:把 solutions 序列化为 SOLUTIONS_JSON,并把各行以“;”连接写回原 SOLUTION 列(长度上限 2000),保证旧字段仍可读。器材清单(含合格证明)继续存 CONSUMABLES_JSON。
- 演示数据同步:DataInitializer 的完工样例改为 2 行处理解决情况,器材样例补 certificate。

验证(2026-09-28):
- mvn -q -DskipTests package 通过;前端 vue-cli-service build 通过。
- DM8 已确认 T_COMPLETION_INFO.SOLUTIONS_JSON 列存在。
- 端到端:临时走完“故障上报→XCB审核→三级审批→派单→完工信息上报”,提交成功且派工单状态写为 COMPLETED;库内落盘为 SOLUTIONS_JSON=[{"content":"更换密封件"},{"content":"完成压力复测"}]、SOLUTION=更换密封件;完成压力复测、器材 JSON 含 certificate。本次临时数据(故障、派工单、完工信息、验收)已全部清理。
- 浏览器核验(1440px):基础信息内“验收方式+项目名称”同一行,“修后质量情况”“故障说明”“原因分析”各独占整行;处理解决情况表头为“序号/处理解决情况/操作”;器材表头为“序号/名称/规格型号/技术参数/数量/计量单位/合格证明/出库单号/来源/备注/操作”;两个“添加一行”按钮均可用。
- 最终布局微调(2026-09-28 晚):按用户补充要求把“项目名称”并到“验收方式”一行、把“故障说明”“原因分析”改为整行;前端 vue-cli-service build 再次通过,dist 已刷新。
- 代码托管(2026-09-28 晚):项目首次纳入 Git,初始化 main 分支并推送到 http://admin@61.183.254.94:3000/r/EmergencyRepair.git,首提交 5305262;.gitignore 排除 .venv/、.ocrvenv/、_extract/、node_modules/、dist/、target/、*.log,共提交 103 个文件(约 4.6MB,含需求文档)。

0. 本会话记录(2026-09-20 周日)

  • 敏感词替换口径修正:不是打包前手工替换,而是先正常构建并部署开发版;部署到生产环境后,直接在生产环境修改已部署的 dist/sensitive-words.json 中 real_name,不重新打包。
  • 前端已增加运行时字典加载与页面文本替换;字典不可用时继续显示开发代称。
  • 用户要求先暂缓 AXU8,改为明确 JCC处长审批后的派单规则。
  • 已确认流程入口:JCC处长审批完成后,流程直接进入 XCB助理派单页面;该页显示“未派单”的故障一览。
  • 已确认页面操作:勾选一个或多个故障后,点击“一键派单”。
  • 已确认派单生成:按每个故障的承修单位生成派工单;一个故障有多个承修单位时,每个承修单位各生成一张派工单。
  • 已确认派工单编号:故障编号 + “/” + 两位序号,从 /01 开始;同一故障的多个承修单位依次为 /01、/02 等。例:故障编号 F001 有两个承修单位时生成 F001/01、F001/02。
  • 已确认按钮范围:除“一键派单”外,AXU10 原截图中的修改、生成临修工程单、删除亚复(疑为清除重复)等业务按钮暂不需要。
  • 口径修正:XCB助理审核仍负责分配承修单位、按承修单位拆单、生成工程单号,且派单时不再重新分配或修改承修单位;派单页改为按故障选择、按承修单位生成派工单,不再使用“仅合并工程单”的表述。
  • 已确认故障编号:由 T队在故障上报时人工填写,故障信息增加“故障编号”字段。
  • 已确认 AXU14“完工情况处理”位于派单之后:每一行代表1个派工单,只允许勾选1行。
  • 已确认 AXU14 列表去掉“工程单单号”、增加“完工状态”;派工单完工状态固定为“未完工(默认)/待备件/完工待试验/完工”四种。
  • 已确认 AXU14 去掉“导出”“添加进度备注”“销项”按钮;保留刷新、完工、完工待试验、未完工、T员评分、待备件。
  • 已确认 AXU14 勾选1张派工单后,可通过“未完工”“待备件”“完工待试验”设置其完工状态。
  • 已确认 AXU14“T员评分”将“修后质量评分”和“修后质量意见”写入所选派工单的对应字段。
  • 已确认 AXU14“完工”按钮仅跳转 AXU15“完工信息上报”,不立即修改完工状态;AXU15 成功提交后,将关联派工单的完工状态写为“完工”。
  • 暂未确认:AXU14 操作角色、各状态按钮启用条件、跳转 AXU15 时是否传入选中的派工单。
  • 已确认 AXU15 提交成功后进入完工验收流程,共5个菜单:验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级。
  • 已确认只有“质检员验收”“质检负责人验收”两个环节提供通过/打回:质检员打回验收申请,质检负责人打回质检员验收。
  • 已确认“验收申请”“完工验收打印输出”“修后质量评级”为简单动作,不提供通过/打回。
  • 暂未确认:验收流程各环节操作角色、打印输出的实际行为,以及“修后质量评级”与 AXU14“T员评分”字段的关系。
  • 已确认系统管理为一级菜单,下设“承修单位管理”“产品结构树管理”“设备基础库管理”3个子菜单。
  • 承修单位管理字段:名称、简称、单位性质、排序、联系人、是否失信单位;“排序”用于XCB助理审核时取前7个常用承修单位显示。
  • 产品结构树管理按“型号 → X号 → 一级系统 → 二级系统 → 设备”建立5级树;设备基础库按“一级系统 → 二级系统 → 设备”建立3级树。
  • 产品结构树中的设备是实例,设备基础库中的设备是类;产品结构树设备关联/归属设备基础库设备。
  • “基础设备库”统一更名为“设备基础库管理”。
  • 新增一级菜单“统计报表”,识别6项功能:装备故障总体分析、故障高发设备 Top、按T统计、故障类型分布、厂家维修情况、故障数/备品备件消耗年度趋势;其中故障类型分布因需求暂时不明而暂缓。
  • 装备故障总体分析指标:工程总数、重大故障、涉H统计、监测项目、未完工、已完工、完工待试验、销项工程;展示方式为上方柱状图、下方统计表/统计明细。“监测项目”为统一名称。
  • 故障高发设备 Top 贯穿各T,通过设备基础库归集设备类别;当前实现按故障关联产品结构树设备的 BASE_EQUIPMENT_ID 汇总,不同X号设备实例只要关联同一设备基础库设备即合并计数。按T统计和年度趋势贯穿各T。厂家与承修单位同义,厂家维修情况按承修单位统计工程总数、未完工、已完工、打分情况。
  • 暂未确认:Top N、备品备件消耗口径、查询/导出/权限和其余4项图表形式;故障类型分布暂缓。
  • 最终一致性校验(2026-09-20):本轮涉及的六类旧术语均已完成零残留扫描;设备基础库旧名仅保留在明确的更名说明中。界面还原.html 标签闭合校验通过,敏感词字典.json 可解析,五份主文档及交接文件均为 UTF-8 无 BOM、LF 换行。
  • 范围收口(2026-09-20):AXU9、AXU11、AXU12、AXU13、AXU16 暂不处理,不纳入当前需求与后续核对;当前需求只以本会话已确认的流程、AXU10 派单、AXU14 完工处理、完工验收5菜单、系统管理和统计报表为准。AXU8 继续暂缓。
  • 技术路线已确认(2026-09-20):前端 Vue 2 + Element UI,后端 Spring Boot + JDK 8 + MyBatis-Plus 3.5.3,参考 MyProject\trafficAudit;数据库 DM8 127.0.0.1:5236,账号/密码 SYSDBA/SYSDBA,大小写敏感;表名和字段名统一使用大写;临抢修模式 LX 需要新建;SYS_DEPT、SYS_USER 通过同义词访问 CSICZB_ZB 模式下的同名表。

0.0.1 开发版运行说明(2026-09-20)

  • 代码目录:后端 emergency-repair-server,前端 emergency-repair-web。
  • 后端:Spring Boot 2.7.0 + JDK 8 + MyBatis-Plus 3.5.3 + DM8,端口 8091;启动命令:mvn -q spring-boot:run。
  • 前端:Vue 2 + Element UI + Vue Router + Axios + ECharts,开发端口 8082;启动命令:npm run serve,生产构建命令:npm run build。
  • 登录:admin / admin123(第一版暂不启用角色拦截)。
  • 当前演示数据:16 条故障、8 张派工单,覆盖未上报、审核、三级审批、待派单、待完工、待备件、完工待试验、五种验收环节和统计报表。
  • 敏感词文件:源码与开发包为 emergency-repair-web/public/sensitive-words.json;正常构建后部署,部署到生产环境后再修改生产环境 dist/sensitive-words.json 的 real_name,前端运行时读取并替换页面文本。
  • 编译验证:后端 Maven 编译通过;前端生产构建通过;开发服务已成功编译并访问 http://localhost:8082。
  • 当前未启用:角色接口拦截、菜单权限实时预览、AXU8/AXU9/AXU11-AXU13/AXU16、故障类型分布报表。

0.0 上一会话记录(2026-09-16 周三 / 2026-09-17 周四)

  • 用户重启电脑、新开对话后,已读取 HANDOFF.md 并接续。
  • AXU3 故障上报核对完成(2026-09-16):字段/按钮通读通过;列表表头增加“上报日期”“上报单位”;任务状态统一采用七个值:未上报 / 已上报XCB / 上级打回 / XCB助理审核完成 / CMB领导审批完成 / JCC助理审批完成 / JCC处长已阅;故障影响、故障性质均为可配置字典字段,示例值分别为“供气”“重大”,其余值待后续补充;第一版暂不实现“填写故障分析报告”;删除限制:未上报故障可以删除,已上报故障不能删除,任务状态为“上级打回”时除外。
  • AXU3 新增表单已确认改为表单式:默认带出登录用户的所属单位、所属专业、本人和当前日期;T队专业、工程专业、故障影响、故障性质使用下拉选择;点击“装备名称”打开产品结构树,选择装备后自动填入“装备名称”和“所属上级系统”;停泊地字段不保留。
  • 敏感词字典新增代称 H;AXU3 中“是否涉H”统一作为字段名使用,开发环境不展开真实名称。
  • 已回填 界面还原.html、前44页需求梳理.md、决策表_待确认项.md、工程状态机设计.md、敏感词字典.md/.json。
  • AXU4 XCB助理审核核对完成(2026-09-16):本页就是流程第 2 步;页面及菜单名称统一写“XCB助理审核”,页面内的“审批”文案同步改为“审核”;承修单位分配、按承修单位拆单、工程单号生成均在本环节完成,后续派单页按故障选择、按承修单位生成派工单;承修单位可分配多个;跟踪技术队加入故障信息并单选;“要求完工时间”统一为“要求完工日期”;去掉“添加进度备注”“CMB已阅”按钮;任务状态按全局七个值统一。
  • 上级打回规则确认(2026-09-16):不逐级打回;CMB领导、JCC助理、JCC处长审批不通过时均直接退回XCB助理,任务状态写“上级打回”。“上级打回”与“已上报XCB”业务语义等价,但作为不同状态值处理,以保留不同的流转轨迹。已同步澄清:XCB助理本环节审核不通过不属于“上级打回”;内容不合格时由XCB助理通过“修改”按钮修正内容,不作为故障处理时点“销项”。
  • AXU5/6/7 三张审批页核对完成(2026-09-17):三页共用同一套界面和功能;保留“列表、刷新、批量审批”,去掉“修改、CMB已阅、销项、添加进度备注”;三页界面、菜单和按钮统一写“审批”,AXU7 页面及菜单名称统一为“JCC处长审批”,不使用“审核/审阅”作为页面名称。
  • 故障信息新增三组审批字段(2026-09-17 确认):CMB领导、JCC助理、JCC处长各自的“审批意见、审批结果(通过/不通过)、审批时间”。
  • 故障信息新增销项字段(2026-09-17 确认):销项理由、销项人、销项时间;故障上报阶段的销项动作统一由XCB助理执行。销项人自动取当前登录的XCB助理,销项时间自动取系统当前时间。
  • 仍未答复:B 组工程状态机 10 项、AXU15 字段来源与可改性;A 组下一步从 AXU8 临抢修工程管理总览继续。

0.1 上一会话记录(2026-09-11 周五;2026-09-14 周一更新)

  • 本会话进展:用户给出 AXU1 流程总览的口径变更——第一版**不按原始需求**,改为 ① 简化业务流程 + ② 只提供网络版、不提供离线单机版。
  • 第一版简化流程(10 步,已确认;2026-09-20 细化验收链):T员故障上报 → XCB助理审核(**分配承修单位、拆单、生成工程单号**)→ CMB领导审批 → JCC助理审批 → JCC处长审批 → XCB助理派单(**显示未派单故障,勾选后一键派单,按承修单位生成派工单**)→ 厂家线下修理 → 厂家上报完工信息 → 完工验收流程(验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级)→ 验收完成。
  • 连带口径变更:① 取消艇长审批环节(原待确认清单第 9 条 → 已解决:不纳入第一版);② 取消全部离线能力(单机版/离线填写、数据包导入导出);③ 取消“XCB助理完工处理/导出完工项目”环节;④ 报价处理移出主流程;⑤ JCC助理审批确认为必经环节。

  • 已同步落盘:requirement\界面还原.html(新增全局口径条 + AXU1 卡片重写 + AXU2/AXU13 受影响标注)、requirement\前44页需求梳理.md(第 2 节业务总览、3.3 流程总览、4.1/6.2/6.3/第 7 节标注、第 9 节新增 14–17 条、术语表)、requirement\工程状态机设计.md(审批顺序、任务状态机、流转表/矩阵、新增待确认 11–12)、requirement\决策表_待确认项.md(全局口径、AXU1 行已核对、C-8 已解决、新增 C-12–C-15)。
  • 当时待办的后续处理:C-12/C-13/C-14/C-15 均已解决;AXU3/AXU4 已于 2026-09-16 核对完成;A 组下一步为 AXU5,B 组工程状态机 10 项仍待答。

2026-09-14 用户答复(已回填全部文档):
- ① 艇长环节不纳入第一版(确认);② 报价处理移出主流程,“报价管理”菜单与模块整体不做(C-14 已解决);③ JCC 助理审批为必经环节(确认);④ C-12 离线/数据包相关功能**整体取消,对应菜单项一并删除**(数据包导入、完工信息导入、导出待完工数据包、报价导出/导入);⑤ AXU2 数据包导入:只做网络版、无导入功能,**无需核对**(页面与菜单项删除)。
- 已解决:**C-13 派单口径**(2026-09-16 确认)——XCB助理审核仍负责分配承修单位、拆单、生成工程单号;后续派单页按故障选择、按承修单位生成派工单,不再重新分配承修单位或修改厂家。剩余:B 组工程状态机 10 项;A 组下一步 AXU5 CMB领导审批。(C-15 术语已于 2026-09-14 答复:统一写“T员验收”)
- 后续进展:A 组已于 2026-09-16 完成 AXU3/AXU4,下一步为 AXU5 CMB领导审批(AXU0/AXU1/AXU15 已完成,AXU2 免核对)。

0.2 上一会话记录(2026-09-10 周四 晨,关机交接)

  • 本会话(2026-09-09 晚–09-10 晨)进展:开始 A 组界面核对,**AXU0 首页门户核对完成**(重画 requirement\界面还原.html 的 AXU0 卡片),并落实用户三项全局口径(见下)。
  • AXU0 核对结论(已回填 界面还原.html / 决策表):布局=顶部按钮区(右侧:器材审核/JC信息)+ 中部按X号统计表(11 列表头:X号/当前状态/停靠泊位/TD/工程总数/销项总数/重大故障/未完工/完工待试验/已完工/待处理;示例 2 行:首行当前状态=小修、其余为空,次行全空)+ 底部三栏(公告/共享资源下载/常用功能);“自筹器材审核”“X号当前信息”确认为不属本页,已删除;“当前状态”为字典字段,现仅确认“小修”,其余取值待确认(C-9)。
  • 全局口径(2026-09-09/10 用户确认):① 无“舰号”概念,今后一律只写 X号(=舷号,敏感词代称);② TD=艇队(敏感词代称);③ 菜单树、顶部两按钮(器材审核/JC信息)、底部三栏均为占位,具体功能/菜单内容暂不讨论(菜单今后单独说)。
  • 已同步落盘:5 份文档全局 34 处“舰号”→“X号”(残留 0);requirement\敏感词字典.md/.json 新增 TD=艇队(现 7 词条:X号/JC/JCC/CMB/T/TD/XCB);requirement\决策表_待确认项.md C-7 标记【已解决】、C-9 补充 X号当前状态取值、A 组 AXU0 行已核对。无临时文件残留。
  • 未完成/下一步:**AXU1 流程总览核对已发起(9 步节点摘要已发给用户,尚未答复确认)**;答复后继续 A 组 AXU2→AXU14、AXU16;B 组工程状态机 10 项、C 组其余项(C-1/2/3/4/5/6/8/9/10/11)待答;推进器材系统对接时向用户索取对接文档(C-11)。
  • 项目目录说明:C:\Users\jcxiong\Documents\Codex 与 D:\Codex 为同一物理目录(junction),本会话 cwd 为 D:\Codex\MyProject\EmergencyRepair,无需同步。

    1. 任务背景与范围

  • 临抢修软件开发项目,原始需求在 requirement\原始需求.docx(共 114 页)。

  • 本次范围仅限前 44 页(含界面截图 AXU0–AXU16,位于文档页 5–44)。
  • 45 页之后:大部分为"计划修理/改换装"原型(确认无关);其中第 55–67 页的"临抢修"详细流程页(AXU19–AXU31)**用户已确认暂不处理**。
  • 阶段要求:只做需求梳理,不写代码。

2. 已完成工作

  1. 解出前 44 页全部 17 张界面截图(_extract\AXU0.png ~ AXU16.png)。
  2. 用本地 OCR(rapidocr_onnxruntime,装于项目 .ocrvenv)提取全部截图文字,做了两轮(原图 + 放大分块)交叉校验,结果一致。OCR 文本在 _extract\ocr\*.txt 与 _extract\ocr2\*.txt。
  3. 产出需求清单:requirement\前44页需求梳理.md(按业务分组:门户/审批链/工程管理/完工/验收/查询/报价/基础信息/技术文件,模糊处标【待确认】)。
  4. 产出界面还原:requirement\界面还原.html(17 张截图逐张文字还原,黄色高亮=待确认/OCR疑误;顶部有 AXUnn↔菜单名↔文档页对照表)。**用户核对状态:AXU15 已完成(2026-08-26),AXU0 已完成(2026-09-09/10),AXU1 已完成(2026-09-11),AXU2 免核对(已取消 2026-09-14),AXU3/AXU4 已完成(2026-09-16),AXU5/6/7 已完成(2026-09-17),AXU8 暂缓(2026-09-20),AXU10/AXU14 已确认(2026-09-20);系统管理菜单已确认(2026-09-20);AXU9、AXU11–AXU13、AXU16 暂不处理并移出当前需求;仅保留 AXU15 遗留项。**
  5. 产出工程状态机设计草案:requirement\工程状态机设计.md(任务状态机 + 工程状态机 + 操作/角色矩阵 + 首页卡片映射,含 10 项新增待确认)。
  6. 建立保密代称字典:requirement\敏感词字典.md(+requirement\敏感词字典.json),按最小词根维护(X号/JC/JCC/CMB/T);正常构建部署后,在生产环境修改已部署的 dist/sensitive-words.json。
  7. AXU15 完工信息上报核对完成(2026-08-26):界面差异、细节、布局授权均已确认(见第 5 节第 7–9 条)。
  8. AXU0 首页门户核对完成(2026-09-09/10):按用户口述重画卡片布局;全局术语统一“舰号”→“X号”;敏感词字典新增 TD=艇队(见第 0 节)。
  9. AXU1 流程总览核对完成(2026-09-11;2026-09-16 修正职责):第一版改为“简化流程 + 只做网络版”;承修单位分配、拆单、工程单号生成在XCB助理审核环节,派单页按故障选择、按承修单位生成派工单。
  10. 离线功能与报价模块取消确认(2026-09-14):离线/数据包功能整体取消并删除菜单项;报价管理模块不做;AXU2 数据包导入免核对(见第 0 节)。
  11. AXU3 故障上报核对完成(2026-09-16):列表表头增加“上报日期”“上报单位”;任务状态口径统一;新增表单默认值、下拉字段和产品结构树交互已确认(见第 0 节)。
  12. AXU4 XCB助理审核核对完成(2026-09-16):承修单位分配、拆单、工程单号生成均在本环节;派单页按故障选择、按承修单位生成派工单;任务状态七个值和按钮调整已确认(见第 0 节)。
  13. AXU5/6/7 三张审批页核对完成(2026-09-17):保留列表、刷新、批量审批;去掉修改、CMB已阅、销项、添加进度备注;统一审批用语和 JCC处长审批名称;故障信息增加三组审批意见、审批结果、审批时间字段。
  14. AXU14 完工情况处理核对完成(2026-09-20):位于派单后;每一行=1个派工单,只允许勾选1行;列表去掉“工程单单号”、增加“完工状态”;完工状态4种值=未完工(默认)/待备件/完工待试验/完工;去掉导出、添加进度备注、销项;T员评分写回修后质量评分和意见;“完工”按钮跳转 AXU15,成功提交后回写状态“完工”。
  15. 系统管理菜单确认(2026-09-20):一级菜单“系统管理”下设“承修单位管理”“产品结构树管理”“设备基础库管理”3个子菜单;字段、树形结构和实例/类关系已回填需求文档。
  16. 统计报表菜单确认(2026-09-20):一级菜单“统计报表”包含6项功能;装备故障总体分析布局为上方柱状图、下方统计,故障高发设备 Top 通过设备基础库跨T归集。
  17. 技术路线确认(2026-09-20):前端 Vue 2 + Element UI、后端 Spring Boot + JDK 8 + MyBatis-Plus 3.5.3,参考 trafficAudit;数据库仅 DM8;完成 requirement\技术路线.md,记录连接参数、大小写敏感约束、表名/字段名全大写规范、LX 新模式及 CSICZB_ZB 同义词访问规则。

3. AXUnn ↔ 菜单名 ↔ 文档页对照

截图 菜单名 文档页 截图 菜单名 文档页
AXU0 首页门户 5 AXU9 CMB领导已阅 15
AXU1 流程总览 6 AXU10 派单管理 16
AXU2 数据包导入(已取消 09-14) 8 AXU11 已派工程 17
AXU3 故障上报 9 AXU12 已派工程单 18
AXU4 XCB助理审核 10 AXU13 工程单打印输出 19
AXU5 CMB领导审批 11 AXU14 完工情况处理 20
AXU6 JCC助理审批 12 AXU15 完工信息上报 23
AXU7 JCC处长审批 13 AXU16 技术文件管理 44
AXU8 临抢修工程管理·总览 14

4. 业务主线(已识别清楚)

【2026-09-11 确认,2026-09-16/20 更新】第一版简化流程(只做网络版):T员故障上报 → XCB助理审核(分配承修单位、拆单、生成工程单号)→ CMB领导审批 → JCC助理审批 → JCC处长审批 → XCB助理派单(显示未派单故障,勾选后一键派单,按承修单位生成派工单)→ 厂家线下修理(系统外)→ 厂家上报完工信息 → 完工验收流程(验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级)→ 验收完成。

当前纳入模块:XCB助理派单(AXU10)→ 完工情况处理(AXU14)→ 完工信息上报(AXU15)→ 完工验收(验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级)→ 系统管理 → 统计报表。原临抢修工程管理中的 CMB领导已阅(AXU9)、已派工程(AXU11)、已派工程单(AXU12)、工程单打印输出(AXU13)以及技术文件管理(AXU16)暂不处理;监测信息、查询、基础信息和技术文件管理不再主动展开,除非用户后续补充需求。

原始需求流程(存档,已不采用):故障上报(数据包导入)→ 艇长(批量/单项)→ 大队助理(XCB)审批 → CMB领导审批 → JCC助理审批 → JCC处长审批 → …… → 完工信息上报 → 验收;含单机版/离线数据包与报价导出导入环节。

关键规则(来自截图备注):
- 派单规则(2026-09-20 确认):JCC处长审批完成后进入XCB助理派单页面,显示“未派单”的故障一览;勾选一个或多个故障后点击“一键派单”,系统按每个故障的承修单位生成派工单。一个故障有多个承修单位时,每个承修单位各生成一张派工单。
- 派工单编号(2026-09-20 确认):故障编号 + “/” + 两位序号,从 /01 开始;同一故障的多个承修单位依次为 /01、/02 等。例:故障编号 F001 有两个承修单位时生成 F001/01、F001/02。故障编号由T队在故障上报时人工填写。原截图“固定-X号/班组类别-YYMMDD-厂家代号”不再作为派工单编号口径。
- 派单页按钮(2026-09-20 确认):除“一键派单”外,原截图中的修改、生成临修工程单、删除亚复(疑为清除重复)等业务按钮暂不需要。
- AXU14 完工处理(2026-09-20 确认):派单后进入本页;每一行=1个派工单且只允许勾选1行;完工状态固定为“未完工(默认)/待备件/完工待试验/完工”;去掉导出、添加进度备注、销项;T员评分把修后质量评分和意见写回所选派工单;“完工”按钮跳转 AXU15,成功提交后回写状态“完工”。
- 工程单号:固定-X号/班组类别-YYMMDD-厂家代号/序号(YYMMDD 为上报日期),用于领器材;XCB助理审核完成后即可领器材。工程单号在XCB助理审核环节生成,派单时不再重新分配承修单位或修改厂家。
- XCB助理审核可分配多个承修单位,审核后按承修单位拆分工程单并生成工程单号;派单页按故障选择、按承修单位生成派工单。
- 完工信息上报与状态回写(2026-09-20 确认):从 AXU14 选中派工单并点击“完工”进入 AXU15;AXU15 成功提交后,关联派工单完工状态写为“完工”。第一版只做网络版,取消“导出工程单→单机填写→导入”离线路径。
- 报价链(已废止):原为 导出待报价项目 → 单机填写/导入报价信息 → 修船办助理审价 → JCC 审价;2026-09-14 已确认报价管理整体不做。

5. 用户已确认事项

  1. AXU8(临抢修工程管理总览):"完工/未完工/待试验/待备件"为工程状态,用户倾向是**状态筛选按钮/页签**(非统计卡),点击后下方表格显示过滤后的工程列表;表格作者只画了 Column1/2/3 空表头 + 2 行空行,**字段未定义,后续自行设计**。
  2. 工程状态贯穿全流程:AXU12(已派工程单)、AXU14(完工情况处理)也出现"完工/完工待试验/未完工/待备件"等状态,可统一设计为工程状态机。
  3. AXU16(技术文件管理):截图无参考价值,业务意图即"上传/管理一大堆技术文件",字段后续自行设计。
  4. 45 页后的临抢修详细流程页(AXU19–31)**暂不处理**。
  5. 实现原则(2026-08-25):不搞专门的流程引擎;任务/工程状态均用业务表上的状态字段管理流转,由业务操作触发并在代码中校验合法性。
  6. 保密代称规则(2026-08-26):非密开发环境所有敏感词一律用代称。先正常构建并部署开发版,部署到生产环境后,在生产环境直接修改已部署的 dist/sensitive-words.json 中 real_name,不重新打包;前端启动时读取并替换页面文本。需求/设计文档与代码一律只写代称。已确认:X号=舷号、JC=舰船、JCC=舰船处、CMB=参谋部、T=艇(详见 requirement\敏感词字典.md)。
  7. AXU15 完工信息上报(2026-08-26):T内施工=艇内施工(T为敏感词代称=艇);T内施工时间段为一个字段;验收方式选项=冷态/热态/海上;处理解决情况为表格(序号+内容,可多条);器材/元器件消耗为表格,从器材系统目录选取(带出名称/规格型号/计量单位,记录器材ID 建立跨系统关联)。
  8. AXU15 布局授权(2026-08-26):本页元素排列位置用户认为不合理,界面设计阶段可按常识调整布局。
  9. AXU15 细节(2026-08-26):承修人可填多人、承修人数手填;修后质量情况=文本描述(暂不关联其他界面);验收方式 checkbox 可多选;数据包=JSON+压缩、单机离网填写、导入校验工程必须已完工;故障说明/原因分析重新填写。
  10. 技术路线与数据库约束(2026-08-28 / 2026-09-20 用户确认):前端使用 Vue 2 + Element UI,后端使用 Spring Boot + JDK 8 + MyBatis-Plus 3.5.3,参考 MyProject\trafficAudit。数据库仅开发**达梦8(DM8)**版本,不开发 MySQL;连接地址 127.0.0.1:5236,用户名 SYSDBA,密码 SYSDBA,数据库大小写敏感,表名和字段名统一使用大写。临抢修业务模式为 LX,需要新建;SYS_DEPT 和 SYS_USER 使用 CSICZB_ZB 模式下的同名表,通过同义词访问。完整记录见 requirement\技术路线.md。
  11. 保密代称补充(2026-09-07):XCB=修船办确认纳入保密代称(大队助理审批方/XCB助理),requirement\敏感词字典.md 与 .json 已同步(词条持续追加)。
  12. 流程简化 + 只做网络版(2026-09-11 用户确认;2026-09-16 修正职责):第一版不按原始需求,改为「① 简化业务流程 + ② 只提供网络版、不提供离线单机版」;简化流程 10 步 = T员故障上报 → XCB助理审核(分配承修单位、拆单、生成工程单号)→ CMB领导审批 → JCC助理审批 → JCC处长审批 → XCB助理派单(显示未派单故障,勾选后一键派单,按承修单位生成派工单)→ 厂家线下修理 → 厂家上报完工信息 → 完工验收流程(验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级)→ 验收完成。
  13. AXU3 故障上报(2026-09-16 用户确认):字段、按钮通读通过;列表表头增加“上报日期”“上报单位”;任务状态统一采用七个值:未上报 / 已上报XCB / 上级打回 / XCB助理审核完成 / CMB领导审批完成 / JCC助理审批完成 / JCC处长已阅;故障影响、故障性质均为可配置字典字段,示例值分别为“供气”“重大”,其他值待补;“填写故障分析报告”第一版暂不实现。新增改为表单式,默认带出登录用户所属单位、所属专业、本人和当前日期;T队专业、工程专业、故障影响、故障性质为下拉;点击“装备名称”打开产品结构树,选择后自动填入“装备名称”和“所属上级系统”;停泊地字段不保留。H 已纳入敏感词字典,字段统一写“是否涉H”。删除限制:未上报故障可以删除,已上报故障不能删除,任务状态为“上级打回”时除外。

  14. AXU4 XCB助理审核(2026-09-16 用户确认):本页即流程第 2 步;承修单位分配、拆单、工程单号生成均在本环节完成,后续派单页按故障选择、按承修单位生成派工单;承修单位可分配多个;跟踪技术队加入故障信息并单选;字段统一为“要求完工日期”;去掉“添加进度备注”“CMB已阅”按钮;任务状态按全局七个值统一。
  15. 上级打回规则(2026-09-16 用户确认):CMB领导、JCC助理、JCC处长审批不通过时,均直接退回XCB助理,任务状态写“上级打回”;不逐级打回。“上级打回”与“已上报XCB”业务语义等价,但作为不同状态值保存以区分流转轨迹。“上级打回”不适用于XCB助理本环节审核不通过。
  16. XCB助理审核不通过的处理(2026-09-16 用户确认):内容不合格时,XCB助理通过“修改”按钮自行修正内容;不作为故障处理时,点“销项”。不转“上级打回”。
  17. AXU5/6/7 三张审批页共通口径(2026-09-17 用户确认):三页保留列表、刷新、批量审批;去掉修改、CMB已阅、销项、添加进度备注。界面、菜单和按钮统一使用“审批”,JCC处长页面及菜单统一写“JCC处长审批”。故障信息增加三组字段:CMB领导、JCC助理、JCC处长各自的审批意见、审批结果(通过/不通过)、审批时间。
  18. 故障上报阶段销项(2026-09-17 用户确认):统一由XCB助理执行;故障信息增加销项理由、销项人、销项时间字段。销项人自动取当前登录的XCB助理,销项时间自动取系统当前时间。
  19. AXU14 完工情况处理(2026-09-20 用户确认):位于派单之后;每一行=1个派工单,只允许勾选1行;列表去掉“工程单单号”、增加“完工状态”;完工状态4种值=未完工(默认)/待备件/完工待试验/完工;去掉导出、添加进度备注、销项;T员评分写回修后质量评分和意见;“完工”按钮跳转 AXU15,成功提交后回写状态“完工”。
  20. 完工验收流程(2026-09-20 用户确认):AXU15 成功提交后进入5个菜单:验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级。只有质检员验收、质检负责人验收提供通过/打回;质检员打回验收申请,质检负责人打回质检员验收。验收申请、完工验收打印输出、修后质量评级为简单动作。
  21. 系统管理菜单(2026-09-20 用户确认):一级菜单“系统管理”包含“承修单位管理”“产品结构树管理”“设备基础库管理”。承修单位管理字段=名称、简称、单位性质、排序、联系人、是否失信单位,排序用于XCB助理审核时取前7个常用承修单位显示;产品结构树=型号→X号→一级系统→二级系统→设备的5级树,设备基础库=一级系统→二级系统→设备的3级树,产品结构树设备为实例,设备基础库设备为类。
  22. 统计报表菜单(2026-09-20 用户确认):一级菜单识别6项功能:装备故障总体分析、故障高发设备 Top、按T统计、故障类型分布、厂家维修情况、故障数/备品备件消耗年度趋势;其中故障类型分布暂缓。装备故障总体分析指标=工程总数、重大故障、涉H统计、监测项目、未完工、已完工、完工待试验、销项工程,布局=上方柱状图+下方统计。故障高发设备 Top 贯穿各T并通过设备基础库归集设备类别;按T统计和年度趋势贯穿各T;厂家与承修单位同义,厂家维修情况包含工程总数、未完工、已完工、打分情况。

6. 待确认清单(用户尚未答复)

  1. 【已解决】CMB=参谋部、JCC=舰船处、JC=舰船、XCB=修船办(2026-08-26/09-07 确认,见敏感词字典)。
  2. 【已解决】T=艇(敏感词代称,按最小词根维护;组合词如 T队专业、T内施工 自动替换,2026-08-26 确认)。
  3. 【已解决 2026-09-17】AXU5/6/7 三页功能共通:保留列表、刷新、批量审批;去掉修改、CMB已阅、销项、添加进度备注;统一使用“审批”用语和“JCC处长审批”名称;增加三组审批意见、审批结果、审批时间字段。
  4. 【暂不处理 2026-09-20】AXU9 不再纳入当前需求;其状态列含义无需继续确认。
  5. 【已解决 2026-09-20】派工单编号为“故障编号 + /01、/02 等两位序号”;原截图的固定复合编号口径不再采用。
  6. 【已解决 2026-09-20】“键派单”确认应为“一键派单”;修改、生成临修工程单、删除亚复(疑为清除重复)等原截图业务按钮暂不需要。
  7. 无截图模块页面设计:监测信息、查询(工程单/工程项目/故障信息/销项)、报价管理(导出待报价/修船办初审/JCC审核)、基础信息(JC信息/用户数据范围);系统管理菜单已确认包含承修单位管理、产品结构树管理、设备基础库管理;完工验收5菜单已确认,字段与页面细节仍待设计。
  8. 【已解决】首页统计卡片完整清单(2026-09-10):实为“按X号统计表”表头 11 列(X号/当前状态/停靠泊位/TD/工程总数/销项总数/重大故障/未完工/完工待试验/已完工/待处理),非散列卡片;“JC信息”=舰船信息(2026-08-26)、TD=艇队(2026-09-10)均已确认。
  9. 【已解决 2026-09-11】艇长环节不纳入第一版(简化流程从 T员故障上报直接进入 XCB助理审核)。
  10. 字典数据:故障影响(示例“供气”)、故障性质(示例“重大”)已确认按可配置字典字段处理,其他取值待补;X号“当前状态”其他取值待补。
  11. 术语勘误(OCR):白修=自修、T员队验收=T员验收(2026-09-14 确认统一写“T员验收”);H 为敏感词代称,非密材料统一写“是否涉H”(2026-09-16)。
  12. 【待办·提醒用户】器材系统对接文档:用户已有文档,需要时向用户索取(器材目录表结构、器材ID、接口方式等)。
  13. AXU15 字段来源与可改性:X号/工程编号/开工时间/完工时间/承修单位等哪些系统带出、哪些手填、可否修改。
  14. 【已解决 2026-09-14】离线/数据包相关功能整体取消:AXU2 数据包导入(该页唯一功能)、完工信息导入、AXU13“导出待完工数据包”、报价管理的导出/导入;对应菜单项一并删除。
  15. 【已解决 2026-09-16;2026-09-20 补充】派单口径:XCB助理审核仍填“承修单位/跟踪技术队/要求完工日期”,并负责分配多个承修单位、按承修单位拆单、生成工程单号;后续派单页按故障选择、按承修单位生成派工单,不再分配或修改承修单位。故障编号由T队在上报故障时人工填写,故障信息增加“故障编号”字段。
  16. 【已解决 2026-09-14】报价管理整体不做:报价处理移出主流程,“报价管理”菜单与模块取消。
  17. 【更新 2026-09-20】曾统一写“T员验收”;现验收流程改为5个菜单,不再使用“T员验收”作为菜单名,“T员”角色代称仍保留。
  18. 【已解决 2026-09-16】XCB助理审核不通过后的处理:内容不合格时由XCB助理通过“修改”按钮修正内容;不作为故障处理时点“销项”;不转“上级打回”。
  19. 派单规则与编号(2026-09-20 用户确认):JCC处长审批完成后直接进入XCB助理派单页面;页面显示未派单故障,勾选后点击“一键派单”;按承修单位生成派工单,编号为故障编号 + /01、/02 等两位序号。除“一键派单”外,原截图其他业务按钮暂不需要。故障编号由T队在上报故障时人工填写,故障信息增加“故障编号”字段。
  20. 【已解决 2026-09-17】故障上报阶段销项统一由XCB助理执行;故障信息增加销项理由、销项人、销项时间字段;销项人自动取当前登录XCB助理,销项时间自动取系统当前时间。
  21. 【已解决 2026-09-20】AXU14 完工情况处理:位于派单之后;每一行=1个派工单,只允许勾选1行;去掉“工程单单号”,增加“完工状态”;完工状态4种值=未完工(默认)/待备件/完工待试验/完工;去掉导出、添加进度备注、销项;T员评分写回修后质量评分和意见;“完工”按钮跳转 AXU15,成功提交后回写状态“完工”。
  22. 【AXU14 待确认】操作角色、各状态设置按钮的启用条件、跳转 AXU15 时是否传入选中的派工单。
  23. 【已解决 2026-09-20】 AXU15 成功提交后进入完工验收流程,共5个菜单:验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级。通过/打回仅存在于质检员验收和质检负责人验收;质检员打回验收申请,质检负责人打回质检员验收。验收申请、完工验收打印输出、修后质量评级为简单动作。
  24. 【完工验收待确认】各环节操作角色;完工验收打印输出的实际打印行为;“修后质量评级”与 AXU14“T员评分”字段的关系。
  25. 【系统管理待确认】承修单位的单位性质可选值、排序方向、重复排序处理、失信单位规则;设备基础库设备完整字段;产品结构树设备与设备基础库设备的具体关联及维护规则;系统管理3个子菜单的增删改查权限。
  26. 【统计报表待确认】Top N;统计周期;打分口径;备品备件消耗计量口径;各报表查询条件、时间范围、图表形式、导出与权限。故障类型分布暂缓。
  27. 【已完成 2026-09-20】复杂查询与统计报表 SQL 改造:当前五个统计接口已迁移到独立的 ReportMapper + ReportMapper.xml + DTO,采用 DM8 手写聚合 SQL,已移除 overviewReport、topEquipment、byTeamReport、contractorReport、yearlyTrend 的整表加载和 Java 内存聚合,并补上完工消耗计数及关联索引。普通单表筛选、CRUD 继续使用 MyBatis-Plus BaseMapper + LambdaQueryWrapper;后续新增复杂查询按同样边界处理。

7. 关键文件索引

  • requirement\原始需求.docx — 原始需求文档(114 页)
  • requirement\前44页需求梳理.md — 需求清单(主要交付物)
  • requirement\界面还原.html — 截图文字还原(用户核对用)
  • requirement\工程状态机设计.md — 工程状态机设计草案(2026-08-25 新增,待确认)
  • _extract\AXU0~16.png — 解出的界面截图
  • _extract\ocr\、_extract\ocr2\ — 两轮 OCR 文本
  • _extract\slices\、_extract\slices2\、_extract\zoom\ — 截图切片
  • .ocrvenv\ — OCR 环境(rapidocr_onnxruntime)
  • requirement\技术路线.md — 前端、后端、DM8、同义词和模式约束
  • requirement\敏感词字典.md(+.json) — 保密代称字典(md 说明 + 可配置 JSON 样例)
  • HANDOFF.md — 本交接文件(项目根,关机前更新会话记录)

8. 工作约定(务必遵守)

  • 不要把图片/视频直接塞进模型上下文(顶层规则已写入 C:\Users\jcxiong\.codex\AGENTS.md 第 8 节);一律用 .ocrvenv 本地 OCR 提取文字。
  • apply_patch 在本机 100% 失败(Windows Store Codex ACL),改文件一律用 Python:io.open(path, encoding='utf-8') 读取 → str.replace(old, new, 1) → 写入 newline='',并验证替换生效。
  • 不用 Start-Process/ProcessStartInfo(Path/PATH 重复键错误);后台进程用 WScript.Shell。
  • Python 用 C:\Users\jcxiong\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe。
  • 与用户交流用中文;规则/脚本文件内容用英文。
  • 交付大篇幅内容(如界面还原)写文件,不在对话里全文展开,控制 token 成本。
  • 文档与代码一律使用敏感词代称(见 requirement\敏感词字典.md),禁止在非密材料出现真实名称。

9. 下一步建议

  1. A 组界面核对已收口(2026-09-20):AXU10 派单页、AXU14 完工情况处理、完工验收5菜单及系统管理、统计报表已按用户口径回填;AXU8 继续暂缓;AXU9、AXU11–AXU13、AXU16 暂不处理,不再列入下一步。
  2. AXU10 核对重点:未派单故障列表字段;勾选与一键派单交互;一个故障多承修单位时生成多张派工单;故障编号/01、/02 编号落地;故障编号由T队人工填写,故障信息增加对应字段。
  3. B 组工程状态机:B1-B4 已于 2026-09-28 确认并回填;B6-B10 待答(requirement\工程状态机设计.md 第 4 节 + 决策表 B 组),答完固化为正式设计。
  4. AXU15 剩余待确认:字段来源与可改性(待确认清单第 13 条);完工验收各环节角色、打印输出和评级字段关系。
  5. 状态机确认后,逐模块细化页面字段与按钮(从审批链/派单/完工入手)。
  6. 器材系统对接:用户已有文档,推进时提醒用户提供(决策表 C-11)。
  7. 系统管理:继续细化承修单位管理、产品结构树管理、设备基础库管理的列表字段、编辑交互、树节点操作和校验规则。
  8. 统计报表:继续细化6项报表的查询条件、指标映射、分组/归集规则、图表形式、导出和权限。
  9. 复杂查询 SQL 改造(已完成 2026-09-20):统计模块已使用独立 ReportMapper + ReportMapper.xml + DTO 和手写聚合 SQL;普通故障列表仍保留 MyBatis-Plus Wrapper,后续只对确实复杂的查询扩展 Report Mapper。

10. 收尾快照(2026-08-26 晚,用户关机前)

  • 项目路径说明:C:\Users\jcxiong\Documents\Codex 是指向 D:\Codex 的 junction,两个路径实为同一物理目录,无需同步(已记入顶层 AGENTS.md 第 0 节)。
  • 全部交付物已落盘(requirement\):需求清单、界面还原.html、工程状态机设计.md、敏感词字典.md/.json;本交接文件 HANDOFF.md 位于项目根。无进行中的未保存工作。
  • 今日进展(2026-08-26):
  1. 建立保密代称规则与敏感词字典(X号/JC/JCC/CMB/T,最小词根原则)。
  2. AXU15 完工信息上报界面核对完成:5 条界面差异 + 布局授权 + 5 条细节确认(见第 5 节第 7–9 条)。
  3. 顺带测试 OCR 环境(回单清洗项目,与本项目无关,仅环境复用)。
  • 待办(下次会话):
  1. 用户继续核对 界面还原.html(AXU15 已完成,剩余 AXU0–14/16)。
  2. 用户逐条答复 工程状态机设计.md 第 4 节 10 项新增待确认。
  3. AXU15 字段来源与可改性(待确认清单第 13 条)。
  4. 器材系统对接文档:用户已有文档,推进时提醒用户提供(第 12 条)。
  5. 敏感词字典持续收集(XCB=修船办已确认纳入保密代称,2026-09-07)。
  6. 状态机确认后逐模块细化页面字段与按钮。
  • 已确认原则:不搞专门流程引擎,状态用业务表状态字段管理流转(见第 5 节第 5 条);文档/代码一律使用敏感词代称。

11. 收尾快照(2026-09-14 周一晚,用户关机前)

  • 本会话(2026-09-11 晚 / 2026-09-14)结论已全部落盘:requirement\界面还原.html、requirement\前44页需求梳理.md、requirement\工程状态机设计.md、requirement\决策表_待确认项.md、requirement\敏感词字典.md + 本文件;无临时文件残留(已核验),无进行中的未保存工作。
  • 本次已解决的待确认项:C-8(艇长环节不纳入第一版)、C-12(离线/数据包功能整体取消 + 对应菜单项删除)、C-14(报价管理菜单与模块整体不做)、C-15(术语统一写“T员验收”);AXU2 数据包导入免核对(页面取消)。
  • 仍未答复(下次开工从这里接):
  1. C-13 派单口径已于 2026-09-16 解决:XCB助理审核负责分配承修单位、拆单、生成工程单号;派单页按故障选择、按承修单位生成派工单。
  2. AXU3/AXU4 已于 2026-09-16 完成;A 组下一步为 AXU5 CMB领导审批。
  3. B 组工程状态机 10 项 + AXU15 字段来源与可改性。
  • 全局口径(务必遵守):第一版 = 简化流程 + 只做网络版;流程 10 步见第 4 节;**XCB助理审核 = 分配承修单位、拆单、生成工程单号**;**XCB助理派单 = 显示未派单故障,勾选后一键派单,按承修单位生成派工单**;完工验收统一采用5菜单,不再使用“T员验收”作为菜单名;“T员”“要求完工日期”等术语继续统一,代称规则见 requirement\敏感词字典.md。
  • 工作约定不变:不把图片/视频塞进上下文(用 .ocrvenv 本地 OCR);apply_patch 在本机 100% 失败,改文件一律用 Python 读改写并验证;后台进程用 WScript.Shell;Python 用 codex-runtimes\...\python.exe。

12. 收尾快照(2026-09-16 周三 17:38,关机前)

  • 今日已确认并落盘:AXU3 故障上报、AXU4 XCB助理审核;全局任务状态统一为七个值:未上报 / 已上报XCB / 上级打回 / XCB助理审核完成 / CMB领导审批完成 / JCC助理审批完成 / JCC处长已阅。
  • 上级打回规则:CMB领导、JCC助理、JCC处长审批不通过时,统一直接退回XCB助理,状态为“上级打回”;不逐级打回。“上级打回”与“已上报XCB”业务语义等价,但保留独立状态值以区分流转轨迹。
  • XCB本环节审核不通过:不转“上级打回”;内容不合格时由XCB助理通过“修改”按钮自行修正,不作为故障处理时点“销项”。
  • AXU3 要点:列表增加上报日期、上报单位;新增改表单式并带默认值、字典下拉和产品结构树;停泊地取消;第一版不实现填写故障分析报告;未上报可删除,已上报不可删除但“上级打回”状态除外;界面统一写“是否涉H”。
  • AXU4 要点:分配多个承修单位、拆单、生成工程单号均在本环节;后续派单页按故障选择、按承修单位生成派工单;去掉“添加进度备注”“CMB已阅”;跟踪技术队加入故障信息并单选;统一“要求完工日期”。
  • 今日同步文件:HANDOFF.md、requirement\界面还原.html、requirement\前44页需求梳理.md、requirement\工程状态机设计.md、requirement\决策表_待确认项.md、requirement\敏感词字典.md/.json。已检查敏感词 JSON 可解析、无临时文件残留。
  • 下次开机从这里继续:先读本文件;A 组从 AXU5 CMB领导审批继续,核对按钮差异、AXU5/6/7 权限与字段差异。待用户先答复:AXU5 是否保留“批量审批、修改、销项”,去掉“CMB已阅、添加进度备注”。
  • 当时仍待答复:B 组工程状态机 10 项;AXU15 字段来源与可改性;AXU9 三列含义;AXU10 OCR 按钮名称与派工单号日期口径。(AXU9 已于 2026-09-20 明确暂不处理,该待办关闭。)
  • 状态说明:当前只做需求梳理,不写代码;无未保存的进行中工作。

13. 收尾快照(2026-09-17 周四,18:00 关机前)

  • 今日已完成:AXU5 CMB领导审批、AXU6 JCC助理审批、AXU7 JCC处长审批三页共通核对完成。
  • 三页共通操作:保留列表、刷新、批量审批;去掉修改、CMB已阅、销项、添加进度备注。界面、菜单和按钮统一使用“审批”,AXU7 页面及菜单统一为“JCC处长审批”;任务状态仍保留“JCC处长已阅”。
  • 审批字段组:故障信息新增 CMB领导、JCC助理、JCC处长三组字段,每组包含审批意见、审批结果(通过/不通过)、审批时间,共9个字段。
  • 销项规则:故障信息新增销项理由、销项人、销项时间;故障上报阶段统一由XCB助理执行销项。销项人自动取当前登录XCB助理,销项时间自动取系统当前时间。
  • 流转规则不变:CMB领导、JCC助理、JCC处长审批不通过时均直接退回XCB助理,任务状态为“上级打回”;XCB本环节审核不通过不转“上级打回”,内容不合格走“修改”,不作为故障处理走“销项”。
  • 下次开工入口:先读本文件,再从 AXU8 临抢修工程管理总览继续核对。
  • 当时仍待答复:B组工程状态机10项;AXU15字段来源与可改性;AXU9三列含义;AXU10 OCR按钮名称与派工单号日期口径。(AXU9 已于 2026-09-20 明确暂不处理,该待办关闭。)
  • 关机检查:敏感词JSON可正常解析(8个词条);HANDOFF.md、界面还原.html、前44页需求梳理.md、工程状态机设计.md、决策表_待确认项.md 均已保存;无临时文件残留,无未保存的进行中工作。

14. 收尾快照(2026-09-20 周日)

  • 今日已确认:JCC处长审批完成后直接进入 XCB助理派单页面;页面显示未派单故障一览,勾选后点击“一键派单”;按承修单位生成派工单,编号为故障编号 + /01、/02 等。
  • 按钮范围:除“一键派单”外,原 AXU10 截图的修改、生成临修工程单、删除亚复(疑为清除重复)等业务按钮暂不需要。
  • 影响:此前“派单只合并工程单”的概要表述已修正;审核环节仍负责分配承修单位、拆单和生成工程单号,派单时不重新分配承修单位。
  • 暂缓:AXU8 暂不核对。
  • 范围收口:AXU9、AXU11–AXU13、AXU16 暂不处理,不纳入当前需求与后续核对;后续只按本会话已确认的流程、页面和菜单继续推进。
  • 故障编号规则:由T队在上报故障时人工填写,故障信息增加“故障编号”字段。
  • AXU14 规则:派单后进入完工情况处理;每一行=1个派工单,只允许勾选1行;完工状态=未完工(默认)/待备件/完工待试验/完工;去掉导出、添加进度备注、销项;T员评分写回修后质量评分和意见;“完工”按钮跳转 AXU15,成功提交后回写状态“完工”。
  • AXU14 待确认:操作角色、各状态设置按钮的启用条件、跳转 AXU15 时是否传入选中的派工单。
  • 完工验收流程:AXU15 提交成功后依次为验收申请 → 质检员验收 → 质检负责人验收 → 完工验收打印输出 → 修后质量评级。仅质检员验收、质检负责人验收有通过/打回,质检员打回验收申请,质检负责人打回质检员验收;其余3个菜单为简单动作。
  • 完工验收待确认:各环节操作角色、打印输出行为,以及“修后质量评级”与 AXU14“T员评分”字段的关系。
  • 系统管理:一级菜单下设承修单位管理、产品结构树管理、设备基础库管理3个子菜单。
  • 承修单位管理:字段=名称、简称、单位性质、排序、联系人、是否失信单位;排序用于XCB助理审核时取前7个常用单位显示。
  • 产品结构树管理 / 设备基础库管理:产品结构树为型号→X号→一级系统→二级系统→设备的5级树;设备基础库为一级系统→二级系统→设备的3级树;前者设备是实例,后者设备是类。
  • 统计报表:一级菜单包含6项功能;装备故障总体分析上方为柱状图、下方为统计,故障高发设备 Top 通过设备基础库跨T归集。
  • XCB助理审核补充(16:25):补齐9类筛选控件;“修改”“销项”按钮已落地并验证。修改支持 UNREPORTED / REPORTED_XCB / RETURNED,销项仅支持 REPORTED_XCB / RETURNED,销项后状态为 CANCELLED 并写回理由、操作人和时间。