# 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 专业配置与故障编号自动生成 / 2026-09-29 代码入库公司 Git 更新)| 用途:新开会话时先读本文件,即可无缝接续 > 项目目录:`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`,字段包含 `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 构建与重启命令 前端构建: ```powershell cd D:\Codex\MyProject\EmergencyRepair\emergency-repair-web npm run build ``` 后端构建: ```powershell 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 隐藏启动: ```powershell $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) ``` 5. 等待 `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号限制是否需要放宽。 - 分页、跳页、每页条数、导出行为是否符合预期。 4. 若不满意,优先只改: - `FaultReport.vue` - `ProductTreePicker.vue` - `BusinessService.java` - `FaultController.java` 5. 当前未发现阻断性错误;用户已于 2026-09-20 确认多装备和分页的最终界面效果验收通过。 6. 不要回滚已有修改;不要执行破坏性 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` 并写回理由、操作人和时间。 ## 15. 收尾快照(2026-09-29 周二 06:49,上班前关机) **本次会话完成(细节见 0.10 / 0.11)** - 决策表 B1–B4 按建议关闭并落地:系统管理新增“工程专业配置”(字段:名称)、“T队专业配置”(字段:名称、分类 A/B)。 - 故障编号改为自动生成:`潜1基-X号/A-YYMMDD-nnn`(X号 3 位数字,A=T队专业 A/B,nnn 为同一 X号+同一专业+同一上报日期内从 001 递增);派单号=`故障编号/nn`(承修单位序号,从 01 起)。 - 故障上报页:任务状态标签与任务状态下拉框拆成两行(标签换到下一行)。 - 完工信息上报页(AXU15):修后质量情况独占整行;项目名称与验收方式同一行;故障说明、原因分析各独占整行;“处理解决情况”改为可多行的表格(序号/处理解决情况);维修器材表列改为序号、名称、规格型号、技术参数、数量、计量单位、合格证明、出库单号、来源、备注。后端新增 `LX.T_COMPLETION_INFO.SOLUTIONS_JSON` 与 `MaterialItem.certificate`,并继续兼容原 `SOLUTION` 字段。 - 项目纳入公司 Git 仓库:`http://admin@61.183.254.94:3000/r/EmergencyRepair.git`,分支 `main`,首提交 `5305262`(103 个文件),随后 `0bacdcf` 补记远端信息。 **关机时状态** - 前端 `http://localhost:8082`(监听 PID 22092)、后端 `http://127.0.0.1:8091`(监听 PID 28104)仍在运行,随关机自动结束。 - 登录 `admin / admin123`;数据库 DM8 `SYSDBA/SYSDBA@127.0.0.1:5236`,schema `LX`。 - 工作区干净,本地 `main` 与 `origin/main` 一致。 **下次开机接续** 1. 先确认 `8082/8091` 是否在监听;不在就按 0.1 节命令重启(前端用内置 Node 24 跑 `vue-cli-service serve`,后端用 `mvn -q spring-boot:run`,输出分别重定向到 `frontend.log` / `backend.log`)。 2. 决策表 B6–B10 待用户答复(`requirement\工程状态机设计.md` 第 4 节 + `requirement\决策表_待确认项.md` B 组),答完固化为正式设计。 3. AXU15 剩余待确认:字段来源与可改性(待确认清单第 13 条)、完工验收各环节角色与打印输出、修后质量评级与 AXU14 T员评分字段的关系。 4. 后续改动完成后直接推送到公司 Git 仓库 `main` 分支。