# 质检报告「判定结论 / 质检专用章」补齐 - 前端联调方案 > 本次变更:打印报告版式补齐纸质报告必有的「判定结论」「质检专用章」两栏,并把平行测量列头由固定「测量N」改为按批次数自适应。前端浏览器打印与产品检验单 Word 导出两个出口同步生效。 > 关联文档:`docs/qc_chemical_report_integration.md`(化工检验报告整体版式)、`docs/mes_oqc_check_result_frontend.md`(OQC 检测结果字典切换)。 ## 涉及页面 - 检验报告打印组件 `views/mes/qc/components/qc-report-print.vue` - 四类检验单列表(调用方,无需改动):`views/mes/qc/{iqc,ipqc,oqc,rqc}/index.vue` - 产品检验单 Word 导出(后端生成,无前端页面) ## 变更摘要 | 出口 | 变更 | |------|------| | 前端浏览器打印 | ① 新增「判定结论 / 质检专用章」一行(判定结论带出检验结果文案,盖章区留空)② 测量列头:仅一个测量批次时显示「测量值」,多批次时显示「测量1」「测量2」③ 表头信息栏中原有的「检测结论」已移除(与新「判定结论」同值,避免同页重复) | | Word 导出 `/mes/qc/indicator-result/export-product-word` | 「判定结论:」后自动写入检验结果文案;「质检专用章:」仍留空盖章 | ## API | 方法 | 路径 | 说明 | |------|------|------| | GET | /mes/qc/indicator-result/report | 打印报告聚合数据,响应新增 `checkResultText`;其余请求参数与响应结构不变 | **响应字段新增:** | 字段 | 类型 | 说明 | |------|------|------| | checkResultText | String | 检测结果文案,由后端按 `qcType` 选择字典解析。OQC 取 `mes_oqc_check_result`(1型/2型/废品),IQC/IPQC/RQC 取 `mes_qc_check_result`(校验通过/校验不通过)。`checkResult` 为空时该字段为 null | **响应示例(节选):** ```json { "code": 0, "data": { "qcType": 3, "docCode": "OQC20260106001", "itemName": "工业用正丁醇", "checkResult": 1, "checkResultText": "1型", "measureNos": [1], "items": [] } } ``` ## 数据带入说明 1. `checkResult`(检验单完成时由人工填写的检测结果)→ 后端解析为 `checkResultText` 随 `/report` 返回,前端打印时直接展示,**不再由前端按固定字典取标签**。 2. `measureNos` 数组长度 → 决定测量列头文案:长度为 1 时列头为「测量值」,长度 ≥ 2 时列头为「测量1」「测量2」…,列的取值口径(每列对应一个测量批次)不变。 3. 「质检专用章」无数据来源,仅为空白单元格,供打印后人工盖章。 ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | checkResultText | 打印版式底部「判定结论:」之后 | 无值时显示「-」(前端兜底逻辑不变) | | — | 打印版式底部「质检专用章:」 | 空单元格,预留约 90px 高度便于盖章 | | measureNos | 检验项矩阵表头 | 单批次「测量值」,多批次「测量1」「测量2」 | ## 业务规则说明 | 场景 | 规则 | |------|------| | OQC 检验单 | 判定结论显示产品等级(1型/2型/废品),与 `mes_oqc_check_result` 字典一致 | | IQC/IPQC/RQC 检验单 | 判定结论显示通用检测结果(校验通过/校验不通过) | | 检验单尚未判定 | `checkResult` 为空 → 判定结论显示「-」 | | 未做平行测量 | 测量列只有一列,列头为「测量值」 | | 做了平行测量 | 按批次数展开多列,列头为「测量1」「测量2」 | | 打印后盖章 | 判定结论、质检专用章不参与流程流转,仅作纸质留痕 | ## 前端入口(新增) 产品检验单 Word 导出此前只有后端接口、前端无入口,本次在四类检验单列表的**行操作列**补齐按钮。 | 页面 | 按钮 | 位置 | |------|------|------| | `views/mes/qc/iqc/index.vue` | 导出产品检验单 | 行操作列「打印报告」之后 | | `views/mes/qc/ipqc/index.vue` | 导出产品检验单 | 行操作列「打印报告」之后 | | `views/mes/qc/oqc/index.vue` | 导出产品检验单 | 行操作列「打印报告」之后 | | `views/mes/qc/rqc/index.vue` | 导出产品检验单 | 行操作列「打印报告」之后 | | 项 | 说明 | |----|------| | 图标 | `ant-design:file-word-outlined` | | 权限 | 与各页「打印报告」一致,`mes:qc-{iqc\|ipqc\|oqc\|rqc}:query` | | 接口 | `GET /mes/qc/indicator-result/export-product-word`,参数 `qcId`、`qcType`、`resultId`(可选,不传取该检验单最早一条检验结果) | | 下载文件名 | `产品检验单-{检验单编号}.docx` | | 调用方式 | `requestClient.download` 取 Blob → `downloadFileFromBlobPart` 落盘 | ## 注意事项 - `checkResultText` 是**新增响应字段**,前端读取时需容错(老版本后端不返回该字段):组件当前实现为「取 `checkResultText`,为空时回退按 `checkResult` 取 `mes_qc_check_result` 标签」。 - 打印版式表头信息栏已去掉「检测结论」一项;若页面其它位置仍需要展示检测结论,请从 `/report` 或列表接口的 `checkResult` 取字典标签展示,字典选择需按 `qcType` 区分(OQC 用 `mes_oqc_check_result`)。 - Word 导出的「检验 / 复核 / 批准」已带出单据的检测人员、复核人、审核人姓名(分别为 `inspectorName` / `auditName` / `approveName`);未指定人员时该段留空手写。「质检专用章」仍为留空盖章。 - 导出按钮与「打印报告」同为 `query` 权限级入口,无需新增菜单权限项。